灌籃高手 貪心

 

灌籃高手

tur.exe/tur.in/tur.out

題意描述:

小明所在的籃球俱樂部共有N位灌籃高手(包括他自己),編號爲1N。他們之間總是不斷地進行着挑戰。每一次挑戰都是兩個人單挑,其中某個人獲勝。設已經進行了M場挑戰,並且每場挑戰的結果都已經公佈。現在進行一場超級總決賽,共進行(N-1)場淘汰賽以決出最強的灌籃高手。在這場總決賽中,a能勝b當且僅當在那M場挑戰中a勝過b或者a根本沒與b交手過。聰明的你也許已經發現,決賽的場次安排能夠改變最終的冠軍歸屬。現在要你求出所有可能成爲冠軍的灌籃高手。

 

輸入文件(tur.in)

第一行有一個數N(1<=N<=100,000)

以後N行中,第i行第一個數爲 bi, 即在那M場比賽中i勝過的人的個數,後面有bi個按升序排列的數字(其中不可能有i),即i勝過的人的編號。

數據保證Σbi(即M<=1,000,000

 

輸出文件(tur.out):

僅有一行,第一個數ge爲所有可能成爲冠軍的人的個數,後面ge個數按升序排列,表示可能成爲冠軍的人的編號。相鄰的數字間用一個空格隔開。不要有多餘的空格。

 

輸入樣例:

4

2 2 3

0

1 2

1 2

 

輸出樣例:

3 1 3 4

 

 

 

 

模擬打擂臺的過程,用N*E的複雜度找出第一個可能的獲勝者,然後用類似SPFA的方法找出可能贏他們人,擴展到答案裏。

 

這樣的打裸肯定坑爹也過不來哦,用一個鏈表把所有的可能獲勝的人串起來,然後一旦他成爲獲選的人,就將它刪去,(實際上就是LZN樹的思想,降低常數),這樣N越來越小,最後當然跑得出來。

 

 

 

 

寫醜了,居然比xqz要慢0.02秒......怨念中

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章