cojs 瘋狂的字串 題解報告

2022-05-31 06:24:08 字數 649 閱讀 1809

首先這道題是gt考試的加強版本qaq

當n當n=k的時候,答案顯然是10^n-1

這樣就有20分辣

之後我們考慮k<=20的做法

顯然設f(i,j)表示前i位匹配到了第j位

之後用kmp來轉移就可以了

如果不用矩陣乘法優化的話時間複雜度o(n*k*10)

如果用矩陣乘法的話時間複雜度o(k^3logn)

其實就是gt考試的做法辣

這樣就有50分了

之後我們考慮用dp來容斥

設fi表示前i位且第一次匹配的位置是[i-k+1,i]的方案

不難發現fi=m^(i-k)-sigma(fj*m^(i-k-j))-sigma(fj)

其中第乙個fj保證j<=i-k

第二個fj保證[i-k+1,j]這段字首是數字串的乙個字尾

這個判定可以用雜湊或者kmp解決

這其實是乙個卷積形式

我們機智的構造乙個多項式g來轉移

之後就可以做cdq+fft辣

時間複雜度o(nlog^2n)

可以得到100分了

實際上我們移項之後可以得到

m^(i-k)=sigma(fj*gi-j)

構造多項式h

得到h=f*g,則f=h*g^(-1)

多項式求逆即可

cojs 簡單的01串 題解報告

題意顯然是求n位二進位制串中不大於其逆序串,取反串,逆序取反串的所有串按字典序排序後的第k個 由於n很小,k很大所以我們可以考慮逐位確定 問題轉化為了求方案數,這顯然是可以用數字dp做的 設f len rev inv 表示當前字首長度為len,rev表示是否等於其逆序串,inv表示是否等於其逆序取反...

cojs 瘋狂的魔法樹 瘋狂的顏色序列 題解報告

瘋狂的魔法樹 乙個各種操作大雜燴的鬼畜資料結構題目 首先我們注意到樹的形態是半隨機的 我們可以樹分塊,對樹分成若干個塊 對於每個塊我們維護乙個add標記表示增量 維護乙個vis標記表示覆蓋量 注意標記的下放和兩個標記之間的處理 之後我們對於每個塊我們排序,並維護塊內的有序化 這樣對於每個查詢如果涉及...

cojs 簡單的數字DP 題解報告

首先這道題真的是個數字dp 我們考慮所有的限制 首先第六個限制和第二個限制是重複的,保留第二個限制即可 第五個限制在轉移中可以判斷,不用放在狀態裡 對於第乙個限制,我們可以增加一維表示餘數即可 對於第四個限制也是同理 對於第三個限制我們增加一維用0或1表示奇數或是偶數即可 對於第二個限制我們增加一維...