異或差分之後,需要操作的地方就是,按 \(\text\) 分組後字首異或和不為 \(0\) 的地方
考慮根號分治
若 \(k>\sqrt\) ,則每次修改不超過 \(\sqrt\) 個數,直接暴力做
若 \(k<\sqrt\) ,那麼那麼考慮分塊
修改的話相當於給乙個字尾異或上乙個數
每個塊記憶體字首異或和為 \(x\) 的值的個數,再維護乙個區間異或的標記就好了
然後求出來為 \(0\) 的,再用總的減去
設 \(x=a+b\) ,那最後的結果就是 \(\frac-\frac\)
發現上下的次數都一樣
那麼可以先用 \(ntt\) 求出加和為 \(i\) 的方案數
\(\frac-\frac=-\frac-\frac-1\)
然後將 \(x\) 和 \(c\) 分別用原根表示出來,再用 \(ntt\) 求出 \(\frac=g^i\) 的方案數
再去檢驗是否合法
咕咕咕
省選模擬 19 09 11
ps.博主趁資訊課摸魚考的暴零模擬 看門人憑感覺就知道是長鏈剖分,將路徑查分一下,dis u di sv 2 dis lc adis u dis v 2 dis disu disv 2 disl ca 維護fu,if fu,i 表示u的子樹,深度為 i 的點的 dis disdi s最大值 考慮如何...
省選模擬96
容易發現當 k 3 時無解。然後容易證明當 k 3 時,只有 m 3 才是有解的。然後直接做不好做,考慮欽定然後容斥出合法方案。對於 k 3 列舉乙個點,然後計算另乙個的方案數。其他情況類似,欽定滿足條件的角,然後容斥。然後對於每乙個 o n 的式子用組合恒等式大力化簡就可以做到 o 1 了。考慮每...
省選模擬86
首先考慮基礎的dp定義,那麼發現轉移需要的係數只和dp是奇數的點的個數有關,所以將這個東西記錄在dp狀態中就行了。然後推一下dp轉移,發現轉移係數和奇數的點的個數沒有關係,只與是否存在這樣的點有關,所以用01來記錄就可以了。考慮用總方案減去不合法的方案,也就是1號點能到達的點和2號點能到達的點沒有交...