雜題選講1 2

2022-03-16 13:18:56 字數 2719 閱讀 8524

把序列排序後

問題轉化為子串行兩兩之間的異或和大於等於k

使用者\(trie\)樹優化\(dp\)

因為不滿足單調性所以不能用二分來優化

從實際含義入手

\(ans=n^2-\sum_^d1(i)\)

\((dk(i)=\sum_j^k)\)

線性預處理即可

複雜度\(o(n+t)\)

原先做\(sa\)的題時用過這個套路

列舉長度\(len*2\),每隔\(len\)插乙個點

這樣對於相鄰兩個關鍵點求出最長公共字首和最長公共字尾

那麼答案串便可以在這個區間裡滾動

類似雜湊的去求貢獻

假如\(s[i+1]=0\),根據平方串的性質可以讓\(h[i]=0\)來解決前導零

其中ki給定

考慮對於每個組再分組

每個組被\(k_i\)個人分成了\(k_i+1\)個小組

發現有\(k_i\)個小組大於\(0,1\)個小組可能等於\(0\)

為了統一化,讓前\(k_i\)個小組不包含被選中的人,

條件都變成每個小組非負

直接組合數計算即可

轉化為其他組在\(1\)之前被丟掉的概率之和

\(i\)的貢獻便是\(\frac\)

是原來一道提答題的部分分

對於每個數\(x\)它自主刪的概率便是\(\frac\)

加和便是答案

這道題需要用到\(min_25\)篩

神奇的期望線性性!!

設\(e_g\)代表每拿乙個藍球綠球被拿的期望個數

\(e_g=(e_g+1)*\frac\)

\(e_g=\frac\)

所以綠球的貢獻便是\(\frac\)

對於每個紅球可以分開考慮

它不被拿出的概率\(p_r=(\frac)^k\)

紅球的貢獻便是\(e_r=r*(1-p_r)\)

考慮預處理出可能對答案造成貢獻的點對

對於乙個右端點\(r\),左端點\(x,y\)

一定滿足,\(a_x

並且滿足\(a_r-a_y

即\(2*(a_r-a_y)

也就是說差值至少變為了一半

所以對於乙個確定的右段點,最多有\(log\)個

拿資料結構去求出並且維護即可

考慮對每個\(|i|\)所在的兩個變數之間連一條邊(乙個除外)

那麼每個聯通塊只會是鏈或者環

鏈就用\(dp\)來搞,環的話就列舉斷開的取值來變成鏈

考慮容斥,先欽定一些邊不被覆蓋

之後每個聯通塊兩兩匹配

設\(dp[i][j]\)代表\(i\)的子樹大小為\(j\)的方案數

複雜度\(o(n^2)\)

欽定的時候加乙個\(-1\)的係數便可以只做一次\(dp\)

對於每個顏色整乙個\(a[i]\)次的多項式

其中第\(j\)項代表至多\(j\)個塊的方案數:\(c(a[i]-1,j-1)/j!\)

之後用\(fft\)再容斥一下求出總的方案數

就可以\(o(1)\)的回答問題啦

設\(f[i]\)代表\(i\)行\(m\)列每列都不同的方案數

設\(g[i]\)代表\(i\)行\(m\)列每行都不同,每列都不同的方案數

則有:\(f[i]=a_^\)

由斯特林反演得到:

設\(g[i]\)代表恰好有\(i\)個聯通塊的方案數

設\(f[i]\)代表\(i\)劃分下的總方案數

現在的問題便是求\(f[i]\)

\(f\)的限制是不同集合之間不能有連邊

所以列舉子集劃分,設\(x_i\)代表\(i\)這個圖是否選

所以便可以列出若干個異或方程

高斯消元一下求出主元的個數\(cnt\)

主元不可以隨便選,其他的圖可以,貢獻就是\(2^\)

最後斯特林反演一下便可以得到\(ans=g(1)\)了

2019 2 28 雜題選講

考慮將1至n m分別填入乙個擁有n行m列的 中,不允許重複。你需要滿足以下要求 第i行 1 i n 的最大值為ai。第j列 1 j m 的最大值為bj。請求出合法的填數方案數在模109 7意義下的值。1 n,m 1000 1 ai,bj n m 思路分步 填數 問題符合乘法原理,考慮從大到小填數,先...

9 26雜題選講

非常開心,所有 都咕掉了 cy 簡單計數題,樹狀陣列維護即可。線段樹維護,如果乙個區間整除某個數的時候都等價於減同乙個數,那麼就打上區間減法的標記。複雜度玄學,但是能過。把正著做換成倒著做,把操作變成減去兩邊的數。考慮最大的那個數,顯然在它沒有變化的情況下兩邊的數都不能進行操作,所以如果它沒有變成目...

5 30雜題選講

前三題為水題,後面兩題更有意思。然而 全都咕咕咕了,也許以後會補。簡單樹形dp。簡單最短路。簡單數字dp。首先對於每個點,可行的區域顯然是個矩形,那麼可以先對這些矩形求交,得到合法區域。如果不考慮限制,那麼最優點顯然是 x,y 的中位數。考慮限制之後,只要定下 x 那麼最優的 y 也是確定的。而且,...