hihocoder1174 拓撲排序1

2021-10-12 03:06:34 字數 1563 閱讀 8083

時間限制: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 沒錯呢。好多課程都有先修課程,每次選課之前...