很好的乙個拓撲排序。一不小心就wa。。。
對於a>b,連一條a到b的邊,b>a就連一條b到a的邊。a=b 就用並查集處理,這個地方很容易出錯。解決的方法有很多種,我是通過vector,使得多個點所連向和被連上的邊都集中到匯點上。最後拓撲排序,如果queue裡面同時有2個入讀為0的點,一定不完整。用拓撲排序也可以判斷是否衝突。
#include using namespace std;
const int maxn=1e4+5;
int fa[maxn],n,m,in[maxn],vis[maxn];
char ss[5];
vectore[maxn];
int find(int x)
void unit(int x,int y)
int tuopu()
bool than2=false;
memset(vis,0,sizeof(vis));
while(!q.empty())
} for(int i=1;i<=n;i++)
if(than2) return 2;
else return 3;
}int main()
int a,b;
for(int i=1;i<=m;i++)else if('>'==ss[0])else
} for(int i=1;i<=n;i++)
int res=tuopu();
if(1==res) printf("conflict\n");
else if(2==res) printf("uncertain\n");
else printf("ok\n");
} return 0;
}
hdu1811 並查集 拓撲排序
description 自從lele開發了rating系統,他的tetris事業更是如虎添翼,不久他遍把這個遊戲推向了全球。為了更好的符合那些愛好者的喜好,lele又想了乙個新點子 他將製作乙個全球tetris高手排行榜,定時更新,名堂要比富比士富豪榜還響。關於如何排名,這個不用說都知道是根據rat...
hdu1811 並查集 拓撲排序
題目大意 有n個點 編號0 n 1 有m個關係,或者 若這n個點能形成固定的鏈式大小關係,就輸出 ok 如果關係有衝突,則輸出 conflict 如果關係不全,則輸出 uncertain ps 坑點,conflict 優先於 uncertain 所以判斷到 uncertain 條件時,別急著輸出 u...
HDU 1811 並查集 拓撲排序
題目鏈結 rank of tetris 我們先處理 的情況,把相等關係的兩個數字合併,最終只用他們的根來代表他們。然後再處理 的情況,我們需要先找到每個數字的根,再進行邊的連線。我們還需要記錄縮點後最終有幾個數字,以及進行topo的時候,放進佇列的條件是in 0 find i i 因為有些數字沒有邊...