編譯錯誤(拓補排序)

2021-10-23 20:36:08 字數 1413 閱讀 1425

題目描述

在程式設計師編寫程式的時候,通常會引用其他檔案,而引用的檔案也會引用其它的標頭檔案。但是出現迴圈引用的現象編譯時便會報錯。例如a引用了b,b引用了c,c引用了a,那麼就產生了迴圈引用(circular reference)。考慮另外乙個情況,a引用了b和c,b引用d,c引用d,雖然d被引用了兩次,但是沒有出現迴圈引用。

輸入第一行是乙個整數t,代表測試資料的組數。每組資料中第一行是乙個整數n,代表有多少個引用關係。接下來n行每行有2個字串a,b,用空格分隔,代表a引用了b。其中t<=50, n<=10^5,每個字串的長度不超過100。

輸出共t行。若不會產生編譯錯誤則輸出passed,否則輸出failed。

樣例輸入

2

8client.cpp client.h

client.h server.h

server.cpp server.h

server.h common.h

client.h common.h

common.cpp common.h

common.h gtest.h

common.h glog.h

4work.cpp client.cpp

client.cpp server.cpp

server.cpp adhoc.cpp

adhoc.cpp work.cpp

樣例輸出

passed

failed

#include

using

namespace std;

const

int maxn=

1e5+10;

int n;

vector<

int>v[maxn]

;mapint>mp;

int d[

1000];

intmain()

if(mp.

count

(b)==0)

v[mp[a]].

push_back

(mp[b]);

d[mp[b]]++

;}int num=0;

queue<

int>q;

for(

int i=

0;iwhile

(q.empty()

!=1) num++

; v[u]

.clear()

;}//cout(num==n)cout<<

"passed"

else cout<<

"failed"

clear()

;}return0;

}

mk編譯錯誤

要在工程 中加乙個巨集去控制 在config.mk中定義這個巨集 enable it6263 1 在compile option.mk中根據這個值來定義巨集 ifeq enable it6263 1 cc opts denable it6263 1 else cc opts denable it62...

Greta 編譯錯誤

背景 greta2.6.4在vs2008編譯通過,在vs2013中,編譯出現以下錯誤 1 regexpr2.cpp 1 c users administrator desktop greta greta restack.h 56 error c2332 struct 缺少標記名 1 c users ...

c 編譯錯誤

一.變數未定義的引用 1.如果變數是類中的靜態成員,需要先在類外部初始化。否則會出現此種錯誤 二。標頭檔案包含了,卻報 zsp ipc proxy client.hh 8 1 錯誤 expected class name before endif 注意不能包含這些函式所在庫的標頭檔案。比如info ...