杭電ACM 1285 確定比賽名次(拓撲排序)

2021-06-08 08:11:25 字數 440 閱讀 6977

這裡用到了網上找的的拓撲排序的模版。

map[i][j]存放有向圖的起點i和終點j之間是否連線,=1連線,=0為空。

結果的順序存放在res陣列裡面。

d[i]表示第i個元素的入度,

1)入度為零即表示可以讀;

2)有多個入度為零的點則最終順序不唯一;

3)不存在入度為零的點則順序不能確定。

這道題不用考慮有環的情況。

#include using namespace std;

#define max 510

int map[max][max]; //圖

int res[max]; // 存放結果

int topsort(int n,int mat[max][max],int* res)

topsort(n,map,res);

for(int i=0;i

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

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

杭電 1285 確定比賽名次 拓撲排序入門

傳送門 拓撲排序 按某種順序輸出沒有前驅的點。思路 題目即要求按字典序拓撲排序。ac include include includeusing namespace std int n int par 505 前驅 int ans 505 記錄答案 bool chart 505 505 記錄兩人是否進...

杭電 1285 確定比賽名次(直接拓撲排序)

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