ABC261Ex
顯然有一個倒序DP
目標 \(f_{S,0}\)
可以看作用 dijkstra 跑最短路。
當 \(f_{i,1}\) 的所有 \(f_{j,1}\) 確定時才確定 \(f_{i,1}\),再將其扔到最短路里面跑。
如果無法確定一個f,就說明它後續會一直更新?
首先邊界是可以確定的
那麼min如果欽定只能由已經OK的1來轉,一定是正確的,後續的1不可能更新它
而更新完了的1也是可以如此操作的
agc048D
可以發現的是,當某一堆無窮多的時候,先拿到這一堆的人獲勝,因為它可以磨到另一個人操作完
打個爆搜看看
啊
我們發現若固定局面不變,單獨增加第一堆的個數,其勝負呈現00000000000001111111111111,單獨增加最後一堆其勝負呈現111111111111110000
說明這玩意單調。。。。。。。。。。。
那考慮維護分界點,設f[l,r],g[l,r]分別表示當前先手,若先手贏得[l,r],則當前第一堆最少需要 \(f[l,r]\) 個,當前後手,若後手贏得 \([l,r]\),則當前最後一堆至少需要 \(g[l,r]\) 個
但是有什麼轉移的規律嗎
顯然有單調性隨著端點移動
打一個 \(f[l,r]\) 和 \(g[l,r]\) 的表看看
發現
\(f[l,r]=a[r]-g[l+1,r]+1+f[l,r-1]\),當 \(g[l+1,r]>a[r],f[l,r]=1\)
arc116F
顯然ICG
顯然的一個貪心策略是刪除兩端對於自己而言不優的那個元素。
顯然我要大的肯定是刪小的,反之同理
顯然每個獨立,不然可以交換操作順序,會搶
而且一定有辦法讓答案取到中間的數字,且這樣做應當是最優的
那麼當n是偶數的時候,顯然是留下 \(mid,mid+1\) 裡對先手有利的一個,因為最後一步是先手
否則n是奇數的時候,mid顯然是可以保留的,但是後面後手可以想辦法讓你取小的,所以應該是\(a[mid],(a[mid+1].a[mid-1]\) 裡較先手優的)中較先手劣的
所以長度為奇數的顯然獨立操作不影響先後手,而長度為偶數的顯然也是輪流操作
然後長度為偶數的會交替先後手,所以應該按照貢獻貪心取?
考慮列舉第一步進行的操作之後能夠得到的答案
先手肯定取較大者,後手肯定取較小者,設弄出這玩意是 \((a,b)\)
考慮鄰項交換,\((a[i],b[i])\)
如果交換前更優,且先是先手操作就有 \(a[i]+b[i+1]>a[i+1]+b[i]\implies a[i]-b[i]>a[i+1]-b[i+1]\)
排序取即可。
做完了?
做完了。
「省選聯考 2023 day2」過河卒
智障模擬題,直接不講
「HAOI2015」陣列遊戲
根據翻硬幣遊戲的結論,我們只關心最開始的白棋位置,變為求解若干 100000000
局面的 \(sg\) 值。
長度應當是某個 \(\lfloor\frac{n}{x}\rfloor\) ,所以共有 \(O(\sqrt n)\) 種不同 SG值。
對於每種值,我們考慮其後繼局面,例如 10000
,其後繼是 00000,01000,01100,01110,01111
,相當於是這些局面的 \(mex\)
發現每個局面的 \(sg\) 值是一個字首異或和,從當前白棋位置開始,最初是 \(0\)。利用數論分塊再最佳化即可。
複雜度應當是 \(O(n^{\frac{3}{4}})\) 級別的,也不太會證明。