HDU 1285 確認比賽名次

2021-09-01 20:37:40 字數 1023 閱讀 6555

一道模板題,但有個小細節。。。

這是原來我寫的**,但是一直wa,後來看了其他人的**。。

#include

#include

#include

using namespace std;

int g[

517]

[517

],ans[

1010

],in[

1010];

int n,m;

int x,y;

void

topo()

}}intmain()

topo()

;for

(int i=

1;i)printf

("%d "

,ans[i]);

printf

("%d\n"

,ans[n]);

}return0;

}

這是ac**,唯一的差別就是在入度的處理上有些不同,原因就是資料有重邊,會導致in[y]的值不同。

#include

#include

#include

using namespace std;

int g[

517]

[517

],ans[

1010

],in[

1010];

int n,m;

int x,y;

void

topo()

}}for(

int i=

1;i<=n;i++)}

}int

main()

topo()

;for

(int i=

1;i)printf

("%d "

,ans[i]);

printf

("%d\n"

,ans[n]);

}return0;

}

HDU1285 確定比賽名次

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

hdu 1285 確定比賽名次

解題 拓撲排序 是對有向無環圖的一種排序。表示了頂點按邊的方向出現的先後順序。如果有環,則無法表示兩個頂點的先後順序。乙個簡單的求拓撲排序的演算法 首先要找到任意入度為0的乙個頂點,刪除它及所有相鄰的邊,再找入度為0的頂點,以此類推,直到刪除所有頂點。頂點的刪除順序即為拓撲排序。性質 1 拓撲排序在...

hdu 1285 確定比賽名次

因為輸入資料一定有解,並且要編號小的隊伍在前,那麼用優先佇列儲存結果集即可。拓撲排序關鍵在於需要維護乙個入度為0的頂點的集合。只出不入 include include include include define max 510 using namespace std struct adj adj ...