把序列排序後
問題轉化為子串行兩兩之間的異或和大於等於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 也是確定的。而且,...