題意:給定n個人,根據m個條件派出它們的名次,相同名次的小數在前
很簡單的拓撲排序的實現。
每個結點根據名次賦對應的深度,越靠後越深;
從第乙個深度為0的點開始,把所有與它相連的點從小到大存到topo陣列中;
然後讓這些點深度-1;
再將與這些點相連的點深度-1;
輸入圖時注意把有重邊的情況去掉;
(深度 before 0→1→2 after -1→0→1)
#include
#include
#include
using
namespace
std;
const
int n=505;
int depth[n];
int topo[n];
int g[n][n];
int n,m;
void toposort()
}}int main()
}toposort();
for(int i=1;iprintf("%d ",topo[i]);
}printf("%d\n",topo[n]);
}}/*
4 31 2
2 34 3
*/
確定比賽名次 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進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從...