HDU 1285 確定比賽名次

2021-08-27 05:19:25 字數 745 閱讀 1838

最簡單的拓補排序

用鄰接矩陣模仿來寫的

大資料可能處理不了

題意:

中文題直接看鏈結吧

#include

#include

#include

#include

#include

using

namespace

std ;

/*思路:

直接找一場都沒輸過的,這肯定是第一名,然後把第一名加入佇列(這裡用陣列模仿佇列)

然後把與第一名相關的比賽中輸的一方的所輸的場次減一 , 然後在每次減一的時候肯定會

出現乙個第一名(也就是說你在減的時候回出現個輸的場次為0的人 , 而這個人就是當時的第一名)

就這樣一直反覆迴圈 ,就可以得出名次了 。

*/int arr[1050][1050] ;

int st[100000] ;

int n , m ;

int prim[100000 ] ;

void solve ()

}for(int j = 0 ; j <= n ; j++)

}cout

<< prim[0] ;

for(int i = 1 ; i < n ; i ++)

cout

<< endl ;

return ;

}int main()

}solve() ;

}}

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 ...