CF 494E Sharti

CF 494E Sharti


題意:一個\(n \times n\)的棋盤,共有m個矩形中的格子爲白色。兩我的須要博弈,每次操做選擇一個邊長不超過k的正方形並翻轉顏色,每次翻轉須要正方形的右下角爲白色,輪流操做,不能操做者輸。函數

題解:
這個題顯然是知足翻硬幣遊戲的定理,只是將一維改爲了二維。
\(sg_{i,j}= \min\{ lowbit(i),lowbit(j),maxbit(k) \}\)
lowbit(x)是把x當作2進制數的最低位,maxbit(x)時最高位。
接下來證實這個結論。spa

接下來給出幾個引理。遊戲

定義
\(pre_x = \bigoplus_{i=1}^{x} \text{lowbit(i)}\)
\(f(l,r)= \bigoplus_{i=l}^{r} \text{lowbit(i)}\)it

引理1: \(\forall k \geq 1\),\(pre_{2^k} = 2^{k-1}\)class

證實:考慮各位的貢獻易證。gc

引理2: \(\forall k \geq 1\),令集合\(S_k=\{ pre_x | x\in [0,2^k-1] \}\) ,能夠證實\(S_k=[0,2^k-1]\)im

證實:概括,k=1時顯然成立,當k>1時,\[S_k=\{ pre_x | x\in [0,2^{k-1}-1] \} \bigcup \\ \{ (2^{k-1} + 2^{k-2}) pre_x | x\in [0,2^{k-1}-1] \} \\ =[0,2^{k}-1]\]集合

引理3:\(\forall x \neq y,pre_x \neq pre_y\)
證實:由引理2可知。di

先討論\(k=n\)的狀況,即翻轉的正方形沒有長度限制。display

咱們考慮概括證實。
首先對於\(i \leq 1\)\(j \leq 1\)的狀況,顯然\(sg_{i,j}=1\)
接下來對於\(i \leq x , j \leq y , (i,j) \neq (a,b)\)的狀況都知足結論,咱們須要證實\(sg_{a,b}=\min\{lowbit(a),lowbit(b)\}\)
不妨設\(lowbit(a) \leq lowbit(b)\),\(k=lowbit(a)\)
對於小於2^k的數一定都在S中,由於顯然對於\(i < 2^k, lowbit(a-i)=lowbit(b-i)=lowbit(i)\),
因而對於\(x < 2^k,pre_x \in S\)
只需證實\(2^k \notin S\)
咱們要找\(2^k\),不妨放弱一點條件,咱們只要找值在\([2^k,2^{k+1}-1]\)的便可。
\(t=a-2^k\),\(k'=lowbit(t)\)
若是\(a-2^k\)\(b-2^k\)爲0,那麼必定找不到。
\(lowbit(a)<lowbit(b)\)時,在矩陣的\((a-2^k,b)\)這個位置有一個 \(2^{k'}\)
\(lowbit(a)=lowbit(b)\)時,在矩陣的\((a-2^k,b-2^k)\)這個位置有一個 \(2^{k'}\)
而且顯然,以\(2^k\)爲邊長的正方形只有一個值爲\(2^{k'}\)
把這個位置記爲\((a',b')\),無論在哪,咱們都得把這個\(2^{k'}\)給消掉
那麼新的問題是要在(a',b')爲右下角,找到一個值爲\([2^{k'},2^{k'+1}-1]\)的正方形。
(爲何是正方形呢,由於多出來的右邊那一部分或者是上面一部分的值域必定在\([0,2^{k'}-1]\)),因此不會影響答案。
不難發現這個問題跟原來是同樣的,並且作有限次以後a,b必定有一個會變爲0,因此\(2^k \notin S\),\(\text{mex}\{S\}=2^k\)

這樣咱們就解決了\(k=n\)的問題,當\(k < n\)時,顯然,k只會對\(\min\{lowbit(a),lowbit(b)\} > maxbit(k)\)\(sg_{a,b}\)形成影響,
\(t=2^{maxbit(k)}\)
不難發現,在邊長k之內,以(a,b)爲右下角和以(2t,2t)爲右下角的值是同樣的。
\(S=\{f(x,2t-1)|x\in[2t-k+1,2t]\}\)
\(2t>x,lowbit(x)=lowbit(2t-x)\)
因此\(S= \{pre_x | x\in[0,k-1]\}\)
\(pre_{2^{k+1}-1}=2^{k}\),由引理3可知\(2^k \notin S\)

既然知道了sg函數,咱們直接掃描線+線段樹,因爲lowbit的種數不多,枚舉每一個lowbit進行維護便可。

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息