20220321刷題日記

CF156D

Prufer 序列裸題,不做講解。

CF662C

枚舉行時候變換之後可以通過計數和看某一個數 \(0,1\) 的較少的個數來列式子,而這是一個異或卷積的形式,於是就可以用FWT做了。

但是沒想到這個東西還可以用 dp 來做,轉化題意之後我們可以得到進行儘量少的單點翻轉操作使得經過行列操作之後全都爲 \(0\),如果我們只考慮行操作的話,最後的答案顯然是需要把所有列變成同一個狀態,但是有了列操作,不過我們同樣做就行,只要到最後看一下操作數量,用 \(n\) 減去去個 \(\min\) 即可。

所以我們可以設 \(f_{i,j}\) 表示滿足經過 \(i\) 次單點操作之後列變成 \(j\) 的列的個數,不過注意最後統計答案的時候我們可以考慮翻轉另外 \(n-i\) 個點,然後把整列翻轉。

P4221

首先寫出狀壓 dp 設 \(f_s,h_s,sum_s\) 分別表示答案,是否可行,以及和。考慮到州之間是有順序的,所以我們可以直接枚舉最後一個州是哪個,這樣是 \(3^n\) 的,但是我們考慮整個過程其實是自己卷積,所以可以用 FWT 優化即可。

P4149

點分治裸題,然而一開始並沒有做出來。思路主要是跨在用桶來統計。另外把所有點存起來方便處理,因爲這樣方便清空。

P3768

杜教篩套上整除分塊複雜度也是 \(O(n^{\frac{2}{3})\),並且我們預處理的長度也約爲 \(n^{\frac{2}{3}}\),開的太小會 \(T\)。按道理說開的越大大點跑的越快。

AGC038C

第一次做不是連續標號的莫比烏斯反演,一樣交換求和順序,然後我們考慮把一些能一起算的項弄到一起,一些不能算需要枚舉的放在前面,然後漸漸化簡。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章