20190317 A

今天是學長wsy的題,我理論會100+50+30=180,實際100+20+10=130,充分體現個人菜spa

最近平常模擬賽掛分50到60,很危險,這2天必定要調整好。。。io

Upd:T2我認爲50的劃分數作法實際上是100分作法。。。統計

Upd:T3我猜出了式子的形式卻沒推出來。。。集合

感受浪費了ak場。。。(不過5h估計也寫不完。。。)若是是lqs/wzy必定隨手ak吧。。。比賽

對超常發揮的T1記錄一下吧:(zr的題題面就不放了)co

大體思路:枚舉

考慮枚舉a一個一個暴力建圖

不難發現a新建邊只對>a的點有做用                  --------------用時20min

因此建圖過程能夠認爲是從小到大枚舉a,把比a大的a的鄰居連成團

暴力維護團/dfs直接建邊都有O(n^3/6)或者O(n^2)的50分建圖作法(常數超小)  -------------用時30min

認爲圖是有向的,從小向大連,圖是一個DAG              -------------用時40min

考慮答案統計,一個點的限制是與之相鄰的點

類比樹的染色,DAG的染色的困難在於

1---->2

|         |

v       v

3---->4

的圖中4的染色時2,3是否相同須要討論

觀察題中DAG的性質,發現對於節點i(如圖中1),任意2個出邊的點之間有邊,即圖中1,2,3的關係不會有

答案是每一個點(n-出度)的乘積

此時比賽已經開始60分鐘,寫了O(n^3/6)獲得50分

邊數一共是O(n^2)條,複雜度O(n^3)怎麼也不合理

觀察重要結論:每次連全部比a大的鄰居成團的時候只須要連最小的b和其餘全部鄰居便可

由於剩下的在枚舉到b以前無用,而在枚舉到b時必定會加入進去

85分鐘 寫了O(n^2)仍然50分

本着T1不a必定掉分的信念繼續想

觀察剛纔的重要結論:

每次至關於把a的全部鄰居變成b的鄰居,維護鄰居集合,每次合併a,b便可

暴力set啓發式合併O(nlog^2n)

線段樹合併/平衡樹合併有望O(nlogn)

最終set啓發式合併水過此題(少有的小常數)-----------------------總用時120min

 

感受思路很是妙啊。。。

雖然巨佬們確定認爲這是一道水題。。。

相關文章
相關標籤/搜索