problem description
有n個比賽隊(1<=n<=500),編號依次為1,2,3,。。。。,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在請你程式設計序確定排名。
input
輸入有若干組,每組中的第一行為二個數n(1<=n<=500),m;其中n表示隊伍的個數,m表示接著有m行的輸入資料。接下來的m行資料中,每行也有兩個整數p1,p2表示即p1隊贏了p2隊。
output
給出乙個符合要求的排名。輸出時隊伍號之間有空格,最後一名後面沒有空格。
其他說明:符合條件的排名可能不是唯一的,此時要求輸出時編號小的隊伍在前;輸入資料保證是正確的,即輸入資料確保一定能有乙個符合要求的排名。
sample input
4 31 22 3
4 3
sample output
1 2 4 3
拓撲排序演算法:
對aov網進行拓撲排序的基本思路是從aov網中選擇乙個入度為0的頂點輸出,然後刪除此頂點,並刪除以此頂點為尾的弧,繼續重複此步驟,直到輸出全部頂點或者aov網中不存在入度為0的頂點為止
#include #include #include #include #include #include #include #include #include #include #include using namespace std;
typedef long long ll;
#define n 750
#define inf 0x3f3f3f3f
#define pi acos (-1.0)
#define eps 1e-5
#define met(a, b) memset (a, b, sizeof (a))
#define lson rt<<1, l, tree[rt].mid()
#define rson rt<<1|1, tree[rt].mid()+1, r
int g[n][n], vis[n], n;
int main ()
for (int i=1; i<=n; i++)
}if (!flag)}}
}return 0;
}
確定比賽名次 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進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從...