題面
不難想到拓撲排序
於是每乙個等級高的向等級低的連一條邊
考慮拓撲排序過程中的分層
對於每個點進行分層
於是答案就是這些點中的最大層數
然後就會re
發現我們多連了一些重複的邊
用乙個標記陣列記錄兩個點之間是否連邊即可
#include using namespace std;
inline int gi()
while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return f * x;
}const int maxn = 1003;
int n, m, ans, g[maxn][maxn]/*輸入陣列*/;
int viss[maxn], b[maxn][maxn]/*標記是否連邊*/, ceng[maxn]/*分層*/, in[maxn]/*統計入度*/;
vector vv[maxn];//存圖
inline void topsort()//拓撲排序
} for (int i = 1; i <= n; i+=1) ans = max(ans, ceng[i]);//計算答案
}int main()
for (int j = g[i][1]; j <= g[i][g[i][0]]; j+=1)}}
} }topsort();
printf("%d\n", ans);//輸出答案
return 0;
}
洛谷 P1983 車站分級
一條單向的鐵路線上,依次有編號為 1,2,n 的 n 個火車站。每個火車站都有乙個級別,最低為 1 級。現有若干趟車次在這條線路上行駛,每一趟都滿足如下要求 如果這趟車次停靠了火車站 x,則始發站 終點站之間所有級別大於等於火車站 x 的都必須停靠。注意 起始站和終點站自然也算作事先已知需要停靠的站...
洛谷p1983 車站分級
日常題前廢話 真的感覺估計圖論題的邊數是個unbelievable的玄學操作啊qwq 然後去翻白書 乙個n階的完全無向圖含有n n 1 2條邊,乙個n階的完全有向圖含有n n 1 條邊。這裡階好像是點數?就是因為沒估計好邊數,然後wa了好幾次emmm 然後這道題用到拓撲排序,因此然後所以 你看這個部...
洛谷P1983 車站分級
被普及組的題嚇到了 其實是我對拓撲排序的理解不夠.這個題可以轉化成乙個求最大層次的問題.理論上可以暴力建樹然後求深度,也可以用拓撲排序.然後注意一下建圖時不要重邊就好了.考慮到這個題目的需求和規模,我們使用矩陣存圖.include include include include include in...