日常題前廢話:
真的感覺估計圖論題的邊數是個unbelievable的玄學操作啊qwq
然後去翻白書:乙個n階的完全無向圖含有n*(n-1)/2條邊,乙個n階的完全有向圖含有n*(n-1)條邊。(這裡階好像是點數???)
就是因為沒估計好邊數,然後wa了好幾次emmm
然後這道題用到拓撲排序,因此然後所以
你看這個部落格它又大又圓,感覺好多東西都明日復明日,明日何其多了。
首先這道題是已知線路,讓求最小分級數,咱也不知道為啥就用拓撲排序解了,反正就是用拓撲排序做就對啦。
然後首先是建圖連邊,這裡我們的連邊是在起點到終點之前所有的點中,從沒停的點向停了的點連一條邊,然後要注意不要連重邊減小時間複雜度(然後還要注意的是連邊是講起點與終點之間的車站進行連邊,並不是所有的都連邊)。
樣例第一條線路連邊
樣例第二條線路連邊:
這整個樣例的圖(我猜會非常擁擠然後沒有然後)
首先掃瞄所有入度為0的點,將他們的級別設成1,加入佇列。
然後進行while的(應該是bfs)
code:
#include#includeend-#include
#include
#include
#include
using
namespace
std;
int n,m,head[2010],cnt,a[2010][2010],vis[2010],t[2010],du[2010],jb[2010][2010
];struct
nodeedge[
2010000
];void add(int
from,int
to)queue
q;intmain()}}
}}for(int i=1;i<=n;i++)
}while(!q.empty())
} }
sort(t+1,t+n+1
); cout
}
洛谷 P1983 車站分級
一條單向的鐵路線上,依次有編號為 1,2,n 的 n 個火車站。每個火車站都有乙個級別,最低為 1 級。現有若干趟車次在這條線路上行駛,每一趟都滿足如下要求 如果這趟車次停靠了火車站 x,則始發站 終點站之間所有級別大於等於火車站 x 的都必須停靠。注意 起始站和終點站自然也算作事先已知需要停靠的站...
洛谷P1983 車站分級
被普及組的題嚇到了 其實是我對拓撲排序的理解不夠.這個題可以轉化成乙個求最大層次的問題.理論上可以暴力建樹然後求深度,也可以用拓撲排序.然後注意一下建圖時不要重邊就好了.考慮到這個題目的需求和規模,我們使用矩陣存圖.include include include include include in...
洛谷P1983 車站分級
一條單向的鐵路線上,依次有編號為 1,2,n 的 n 個火車站。每個火車站都有乙個級別,最低為 1 級。現有若干趟車次在這條線路上行駛,每一趟都滿足如下要求 如果這趟車次停靠了火車站 x,則始發站 終點站之間所有級別大於等於火車站 x 的都必須停靠。注意 起始站和終點站自然也算作事先已知需要停靠的站...