【校內模擬】【18-11-05】列隊 【bfs+建圖】【差分約束(的思想)】

題解

其實第一眼看到覺得很像差分約束,因爲那麼多的限制條件擺在那裏嘛……事實證明處理的手段也的確是相近的。

100pts(因爲終於打了正解2333)

對於每一個給出的限制,我們從Li往Ri連一條權值爲Di的邊,再從Ri往Li連一條權值爲-Di的邊。然後我們只需一個bfs就能A掉這題。

emm?具體操作?

考慮一下,如果所有的限制同時成立,那麼兩個人之間的距離就該是固定的,也就是說其對應的dis數組最多被更新一次(初始化爲inf),如果下一次搜到這個點的時候,距離不一樣,那就說明限制之間互相沖突了,自然就impossible了。

如果所有的限制都被滿足,那答案是什麼呢?由於我們建的這個圖不見得是聯通的,而最後要求的答案又是滿足條件的區間長度的最小值。所以我們就把每個聯通塊的長度取個mx,這就是正確答案了,因爲每個位置可以站很多人嘛,你把短的區間全部塞到長的區間裏面就可以了儘管畫面很美

最後就是記得不要像我一樣每次bfs都memset否則你就炸了QAQ

總結

咳咳……剛好考前還在看差分約束的模板題,結果T1就考了差不多的……能想出正解自然很高興,當然因爲一時手賤只有35分就很氣了

反正離聯賽也沒幾天了,就不學新知識了,把所有的模板都拿出來打打,免得遇到這種簡單問題反而忘了怎麼做~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章