有n個比賽隊(1<=n<=500),編號依次為1,2,3,。。。。,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在請你程式設計序確定排名。
題意描述:如原題所示。
演算法分析:拓撲排序,然後輸出上要求合理答案中字典序最小的乙個排列。我挫比了,首先想到的是優先佇列來處理。
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8#define inf 0x7fffffff
9using
namespace
std;
10const
int maxn=500+10;11
12int
n,m;
13struct
node
1420
}cur,tail;
21int graph[maxn][maxn],in
[maxn];
22int
an[maxn],cnt;
2324
void
topsort()
2533
while (!q.empty())
3448}49
}50}51
int flag=0;52
for (int i=0 ;i)
5358 printf("\n"
);59}60
61int
main()
6274
topsort();75}
76return0;
77 }
確定比賽名次 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進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從...