太菜了,遊記也沒什麼好寫的,全程都在打暴力;接著暴力還打掛,毫無懸念地被吊打了……
就這個水平,別說noip 1=了,csp-s 1=都沒啦
後來講題聽懂了兩題,於是現在就開始寫題解……
首先,考慮乙個十分顯然的東西:如果乙個陣列能夠兩兩配對,使得每個數都在恰好乙個對里,且每對的兩個數相等;那麼顯然先手會輸。
原因顯然,先手能做的事情,後手也能做,他只需要控制上述條件的成立即可。即,假設原序列為112
21\ 1\ 2\ 2
1122
,先手通過操作第3
33個數把它變成了110
31\ 1\ 0\ 3
1103
,那麼後手就把3
33變成0
00,其他不變,此時仍然滿足要求。
因此,如果序列中的數有n
nn個數,且n
nn為奇數,那麼顯然先手會勝。即,先手先找到序列中最大的數,然後把它分出去,使得滿足要求;這樣後手就輸了,他就贏了。
如果n
nn為偶數且滿足上面的條件,先手必敗;否則先手必勝。因為,先手同樣也可以通過一次操作滿足要求。例如,序列為123
41\ 2\ 3\ 4
1234
,那麼先手就對第4
44個數進行操作,使整個序列變成133
11\ 3\ 3 \ 1
1331
。時間複雜度o(n
)o(n)
o(n)
。matrix tree定理表示不會,自閉了……
50分: 二進位制列舉+單調棧
我們列舉每一行是否被翻轉,狀態有2
n2^n
2n個。然後,我們列舉長方形的下邊界;然後掃一遍數所有的列,每次貪心地選擇該列是否被翻轉即可。
時間複雜度o(2
nnm)
o(2^n nm)
o(2nnm
)。100分: 縮點+單調棧
一道套路題,可惜比賽的時候沒有主要去想這題,而一直在嘗試優化t2t2
t2容斥套容斥的o(2
2n
)o(2^)
o(22n)
解法。我們類似縮點,對於每個田字格,如果田字格內有偶數個黑格仔,那麼對應的就是個1
11;否則對應的就是0
00。然後在對應的矩陣中面積最大的黑長方形就是答案,顯然後者可以通過列舉下邊界然後直接單調棧來更新答案。
為什麼這樣的解法是正確的呢?因為,即使一次操作涉及到乙個田字格,黑格仔數量的奇偶性仍然不變。而在乙個黑色的長方形中,任何乙個屬於該長方形的田字格內的黑格仔數量必須是4
44個,而它是乙個偶數。所以,我們可以這麼「縮點」並求出新矩陣中最大的長方形。
時間複雜度o(n
m)
o(nm)
o(nm)。
也並不是什麼恥辱,這就是我的實力吧……
重點是全場人均切t1,然而我到現在只做過3
33道博弈論的題目……就這麼點刷題量,你說我t1t1
t1能做得出來?
t 2t2
t2本來想寫o(2
2n
)o(2^)
o(22n)
的容斥套容斥的,後來覺得寫法太煩,就偷懶打暴力來節省時間……結果暴力還打掛了qaq
t 3t3
t3套路真的見少了,還是刷題量不夠的問題吧……
l uo
gu
luogu
luog
u刷了734
73473
4題了,估計到1000
1000
1000
題的時候,noi
p1
=noip 1=
noip1=
就穩了吧。
我真的好菜啊……
模擬賽 circle 題解
題意 有n個數,問有多少個x,x leq t 滿足這n個數分別 x後,異或和為s。每個數小於 2 m 數字dp。由於是加法,需要記錄進製,因此從低位到高位dp。只要記錄下有幾個進製,就可以根據這n的數的大小知道究竟是哪幾個進製了。設 dp i,j,0 1 表示考慮到第i位,有j個進製,與t的大小關係...
模擬賽2 題解
這次模擬賽最後一道是提答題,就不寫題解了。orz這題 emmm,我無話可說。小範圍記憶化,大範圍遞迴求解 複雜度 o k sqrt 記 f i,j 表示前 j 個數中不被 a i,a dots,a n 整除的個數,答案即為 f 1,n 狀態轉移方程為 f i,j f i 1,j f i 1,j a ...
2020 10 08 模擬賽 題解
期望100 實際100 老師說是結論題。其實可以直接打表,t i 表示0 63中有t i 對數與起來等於i,然後乘法原理即可。沒什麼難度。include include using namespace std const int maxn 100005 const int mod 1e9 7 cha...