DTOJ 4877. 時光旅行

題意

在未來時光機器被髮明出來了。Dr. D 打算對HY的交通系統進行研究。研究將跨越k個時間,每個時間雖然地點沒變,但道路改變了。HY的交通系統中,有nn個地點,這些地點被n1n-1條道路所聯通。任意一對地點之間有且僅有一條路。

Dr.D選擇兩個城市ssff,從ss旅行到ff,訪問路上的所有城市,包括ssff。在kk個時間訪問之後,他會寫下這kk次旅行中每次都能訪問的城市有多少,換句話說,把每次訪問的城市當成一個集合,他會寫下這kk個集合的交集大小。

很不幸的是完成工作後Dr.D弄丟了他的筆記本。他現在只有這k個時間的交通系統的圖。Dr.D想知道對於所有可能的ssff,對應的記錄應該是多少。

分值 限制 子任務依賴
1 15 n50,k500n \leq 50, k\leq 500
2 15 n500,k50n \leq 500, k\leq 50
3 70 n500,k500n \leq 500 , k\leq 500 1,2

題解

如果直接枚舉起點或終點或每個點計算貢獻,要使得每張圖都符合,難免要在每張圖中n2n^2去篩掉不合法情況,難以優化。

考慮把樹上uussff的路上這個條件轉化爲式子:比較套路地有ds,u+dt,u=ds,td_{s,u}+d_{t,u}=d_{s,t},這樣每張圖都符合就是cs,u+ct,u=cs,tc_{s,u}+c_{t,u}=c_{s,t},其中cc爲每張圖的dd,於是直接預處理出cc,枚舉起點終點和中間點判斷即可。

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