這道題為什麼想到拓撲排序?因為最後要求判斷無向邊方向使圖無環,所以就想到啦。
對於已給出的有向邊,我們將u->v視為u所以讀入所有有向邊後拓撲排序一下即可,詢問無向邊時如果u比v小,就u->v,否則v->u。
#includeusing namespace std;
const int maxn=1e5+10;
const int maxm=1e6+10;
int n,m1,m2,cnt,sum;
int head[maxn];
int nxt[maxm],to[maxm],order[maxn];
int du[maxn];
queueq;
void add(int x,int y)
int main()
for(int i=1;i<=n;++i)
if(!du[i])
q.push(i);
while(!q.empty()) }
for(int i=1;i<=m2;++i)
return 0;
}
洛谷1522 牛的旅行
洛谷1522 牛的旅行 題目描述 農民 john的農場裡有很多牧區。有的路徑連線一些特定的牧區。一片所有連通的牧區稱為乙個牧場。但是就目前而言,你能看到至少有兩個牧區通過任何路徑都不連通。這樣,farmer john就有多個牧場了。john想在牧場裡新增一條路徑 注意,恰好一條 對這條路徑有以下限制...
洛谷 牛數 野題
題目描述description 我們下面來研究整數性質,我們知道質數只有 1和自身兩個因子,合數至少 有除了 1和自身的其他因子,我們也知道 貓老大數 是只能分解成兩個質數乘 積形式的數,那麼能分解成兩個合數的數呢?我們稱之為 牛數 下面程式設計判 斷整數是否為 牛數 輸入輸出格式input out...
洛谷3761,TJOI2017城市
這道題一開始在想可以列舉每個點對,嘗試刪除其間的邊,因為有o n2 個點對,所以要o 1 更新答案 後來發現,因為是樹,所以只有o n 個點對是有用的 這麼顯然的結論一開始沒發現,看來還是我太弱了 然後就可以每次o n 判斷 首先定義在一棵樹 x 中,對於點y,f x,y 等於以 y 為根的有根樹,...