Day 1 toy
水題不解釋 running
這次比賽排序真心有問題,這一題事實上是兩天中最難的。
每個玩家 x−y x-y的路徑,設 l=lca(x,y) l=lca(x,y),可以分割為 x−l,l−y x-l,l-y
先看第一種
如果有一個點 k k, x−l x-l路徑能給這個點貢獻,那麼必然滿足
deep[x]−deep[k]=time[k] deep[x]-deep[k]=time[k]
明顯可以移項
deep[x]−time[x]=deep[k] deep[x]-time[x]=deep[k]
那麼兩邊都是獨立的了, 在 x x和 l l處分別打上加和減的標記,維護一個桶,然後跑 dfs dfs,那麼在進入這棵子樹前與加完這棵子樹標記後的差值,也就是這個點的答案了。
情況2類似處理
當然了,這個東西你也可以打一個線段樹合并之類的東西來弄,某些大(sha)牛(bi)居然打了鏈剖。。。 classroom
這題應該是除兩天第一題以外最簡單的了。
話說NOIP居然考期望。。
明顯可以 DP DP嘛
設 f[i][j][0,1] f[i][j][0,1]表示到第 i i節課的最小消耗,用了 j j次機會, 0 0表示申請, 1 1表示不申請
跑個 floyd floyd先
考慮轉移
這門課不申請,就一定在原教室,申請,就有一定機率在另一個教室。
轉移就可以直接來了,上節課選,不選,這節課選,不選,推一下就好了。 Day 2 problem
楊輝三角預先處理,然後弄個首碼和即可,我比較蠢,詢問是 O(N) O(N)的,然而完全可以再隨便推一推 O(1) O(1)詢問 earthworm
這題看你腦洞大不大
有一個性質
先切掉的蚯蚓一定比後切掉的蚯蚓長(顯而易見),切完以後,先切掉的蚯蚓和後切掉的蚯蚓對應的兩對來比也是先的長。
什麼意思呢。
比如說兩條蚯蚓長為 x,y,x>y x,y,x>y
都切完以後為 x1,x2,y1,y2 x1,x2,y1,y2
x1>y1