時間限制:10000ms
單點時限:1000ms
記憶體限制:256mb
描述由於今天上課的老師講的特別無聊,小hi和小ho偷偷地聊了起來。
小ho:小hi,你這學期有選什麼課麼?
小hi:挺多的,比如***1,***2還有***3。本來想選yyy2的,但是好像沒有先選過yyy1,不能選yyy2。
小ho:先修課**是個麻煩的東西呢。
小hi:沒錯呢。好多課程都有先修課程,每次選課之前都得先查查有沒有先修。教務公布的先修課程記錄都是好多年前的,不但有重複的資訊,好像很多都不正確了。
小hi:這不正是輪到小ho你出馬的時候了麼!
小ho:哎??
我們都知道大學的課程是可以自己選擇的,每乙個學期可以自由選擇打算學習的課程。唯一限制我們選課是一些課程之間的順序關係:有的難度很大的課程可能會有一些前置課程的要求。比如課程a是課程b的前置課程,則要求先學習完a課程,才可以選擇b課程。大學的教務收集了所有課程的順序關係,但由於系統故障,可能有一些資訊出現了錯誤。現在小ho把資訊都告訴你,請你幫小ho判斷一下這些資訊是否有誤。錯誤的資訊主要是指出現了"課程a是課程b的前置課程,同時課程b也是課程a的前置課程"這樣的情況。當然"課程a是課程b的前置課程,課程b是課程c的前置課程,課程c是課程a的前置課程"這類也是錯誤的。
輸入第1行:1個整數t,表示資料的組數t(1 <= t <= 5)
接下來t組資料按照以下格式:
第1行:2個整數,n,m。n表示課程總數量,課程編號為1..n。m表示順序關係的數量。1 <= n <= 100,000. 1 <= m <= 500,000
第2..m+1行:每行2個整數,a,b。表示課程a是課程b的前置課程。
輸出第1..t行:每行1個字串,若該組資訊無誤,輸出"correct",若該組資訊有誤,輸出"wrong"。
樣例輸入
2
2 21 2
2 13 2
1 21 3
樣例輸出
wrong
correct
題意:判斷是否存在環
思路:拓撲,刪除入度為0的點和相應的邊
#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
#define inf 0x3f3f3f3f
#define eps 1e-10
const int maxn=5e5+5;
const int mod=1e9+7;
int t,n,m,u,v,num,indeg[maxn];
vectorvec[maxn];
queueq;
bool topu()
if(topu())
puts("correct");
else
puts("wrong");
}}
hihocoder 1174 拓撲排序模板
描述 由於今天上課的老師講的特別無聊,小hi和小ho偷偷地聊了起來。小ho 小hi,你這學期有選什麼課麼?小hi 挺多的,比如 1,2還有 3。本來想選yyy2的,但是好像沒有先選過yyy1,不能選yyy2。小ho 先修課 是個麻煩的東西呢。小hi 沒錯呢。好多課程都有先修課程,每次選課之前都得先查...
1174 拓撲排序 一
時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述由於今天上課的老師講的特別無聊,小hi和小ho偷偷地聊了起來。小ho 小hi,你這學期有選什麼課麼?小hi 挺多的,比如 1,2還有 3。本來想選yyy2的,但是好像沒有先選過yyy1,不能選yyy2。小ho 先修課 是個...
1174 拓撲排序 一 模板題
題目鏈結 描述由於今天上課的老師講的特別無聊,小hi和小ho偷偷地聊了起來。小ho 小hi,你這學期有選什麼課麼?小hi 挺多的,比如 1,2還有 3。本來想選yyy2的,但是好像沒有先選過yyy1,不能選yyy2。小ho 先修課 是個麻煩的東西呢。小hi 沒錯呢。好多課程都有先修課程,每次選課之前...