字串專題測試

2022-03-26 20:19:16 字數 606 閱讀 7924

t1:

如果兩個串相同,那麼就是乙個串的每一位和另一串相同,用並查集維護這種限制關係,最後並查集的聯通塊個數就是可以隨意選字元的位置數$(26^)$。

優化的並查集:倍增並查集。像維護線段樹一樣,對於每次合併$[l1,r1]$,$[l2,r2]$,拆分為$2^j$,合併倍增節點$(l1,j)$,$(l2,j)$。最終把每個大塊下傳給其包含的小塊節點。總結點數$n*\log n$,總複雜度$o(n\log^2n)$。

t3:首先想亂選出$i$個集合的方案$g[i]=i^n$,其中不合法的就是有空集的方案。那麼合法$f[i]=g[i]-\sum \limits_^ g[j]*c_i^j $,這樣得到的其實是$i$個集合的排列,最後還要分別除以$i!$求和。暴力是$o(n^2)$的。拆開式子$f[i]=i^n-\sum \limits_^ \frac *i! * \frac$,可以設$f[i]=\frac$,那麼$f[i]=\sum \limits_^ \frac * \frac$,就可以用分治fft解決了。

考前多項式這塊欠的有點多,考場上也沒有yy出來這個分治fft。這場考到2h的時候就很絕望了,t1發現打偽了就只有暴力,t3只會暴力,t2題目都沒讀懂。後面的時間一直想t1和t3,但是並沒有什麼進展。感覺當初學知識學得太慢了。

字串專題測試1 題解

顯然只要對位合併,最後查詢不同的集合數就好了。似乎聽過乙個叫倍增並查集的東西,然而考場上沒有 yy 出來。f 表示點 i 以及 i 往後數 2 k 個元素共同被合併的祖先。對於合併操作,直接用st表的思路合併即可。考慮最終的下傳操作 列舉倍增的次冪數,設 i 向後 2 k 個元素的祖先為 f 因為並...

字串專題

created on 2019年12月1日 author hp 擷取字串 str2 我是迪迦奧特曼 str3 str2 5 str4 str2 0 len str2 2 print str3,str4 擷取的字串如果不存在,會出現異常,可以用try.except捕捉異常 try str5 str2 ...

字串專題

給定乙個字串,你的任務是計算這個字串中有多少個回文子串。具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被視作不同的子串。示例1 輸入 abc 輸出 3 解釋 三個回文子串 a b c 示例 2 輸入 aaa 輸出 6 解釋 6個回文子串 a a a aa aa aaa 解法 1 動態...