HDU 1285 確定比賽名次(拓撲排序)

2021-07-24 00:05:09 字數 656 閱讀 7846

題意:給定n個人,根據m個條件派出它們的名次,相同名次的小數在前

很簡單的拓撲排序的實現。

每個結點根據名次賦對應的深度,越靠後越深;

從第乙個深度為0的點開始,把所有與它相連的點從小到大存到topo陣列中;

然後讓這些點深度-1;

再將與這些點相連的點深度-1;

輸入圖時注意把有重邊的情況去掉;

(深度 before 0→1→2 after -1→0→1)

#include 

#include

#include

using

namespace

std;

const

int n=505;

int depth[n];

int topo[n];

int g[n][n];

int n,m;

void toposort()

}}int main()

}toposort();

for(int i=1;iprintf("%d ",topo[i]);

}printf("%d\n",topo[n]);

}}/*

4 31 2

2 34 3

*/

確定比賽名次 HDU 1285 ,拓撲

有n個比賽隊 1 n 500 編號依次為1,2,3,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在請你程式設計序確定排名。input輸入有若干組,每組中...

HDU 1285 確定比賽名次 拓撲排序

problem description 有n個比賽隊 1 n 500 編號依次為1,2,3,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在請你程式設計序...

拓撲排序 HDU 1285 確定比賽名次

g 確定比賽名次 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description 有n個比賽隊 1 n 500 編號依次為1,2,3,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從...