今天是學長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
感受思路很是妙啊。。。
雖然巨佬們確定認爲這是一道水題。。。