思路
對於每一趟車,將其經過的車站中,停靠的和不停靠的連一條邊,注意邊的去重,要雙向標記,不然有個點會超時,這樣拓撲排序遞推一下就能分級出來
**
#include
using
namespace std;
struct node
;const
int n =
1005
;int n, m;
int ru[n]
;vector <
int> g[n]
;int tong[n]
[n];
queue q;
int flag[n]
;int ting[n]
;int
main()
for(
int j = ting[1]
; j <= ting[k]
; j++)}
}}for(
int i =
1; i <= n; i++))
;}}int mosttop =1;
while
(!q.
empty()
)); mosttop =
max(mosttop, fro.level +1)
;}}}
cout << mosttop << endl;
return0;
}
洛谷 P1983 車站分級(拓撲排序)
一條單向的鐵路線上,依次有編號為 1,2,n的 n個火車站。每個火車站都有乙個級別,最低為 1 級。現有若干趟車次在這條線路上行駛,每一趟都滿足如下要求 如果這趟車次停靠了火車站 x,則始發站 終點站之間所有級別大於等於火車站x 的都必須停靠。注意 起始站和終點站自然也算作事先已知需要停靠的站點 例...
洛谷P1983 車站分級 拓撲排序
一條單向的鐵路線上,依次有編號為 1,2,n的 n 個火車站。每個火車站都有乙個級別,最低為 1 級。現有若干趟車次在這條線路上行駛,每一趟都滿足如下要求 如果這趟車次停靠了火車站 x,則始發站 終點站之間所有級別大於等於火車站 x 的都必須停靠。注意 起始站和終點站自然也算作事先已知需要停靠的站點...
洛谷 P1983 車站分級 拓撲排序
一條單向的鐵路線上,依次有編號為 1,2,n的 n個火車站。每個火車站都有乙個級別,最低為1 級。現有若干趟車次在這條線路上行駛,每一趟都滿足如下要求 如果這趟車次停靠了火車站 x,則始發站 終點站之間所有級別大於等於火車站x 的都必須停靠。注意 起始站和終點站自然也算作事先已知需要停靠的站點 例如...