計蒜之道2016 遺失的支付寶密碼 解題報告
感覺這題好厲害。。
我考試的時候一直在想kmp、sa之類的,完全想偏了。。想到容斥也沒有想到可以這麼搞。
注意到其實square說的是字元之間的相等關係。所以如果我們考慮至少有哪幾個位置是square,那麼就可以求出字串中有幾種不同的字元,那麼方案數就是
m^{不同字元種數}
了。至於字元種數,顯然可以通過並查集求出來。 這樣時間複雜度是
O(n^22^{n \over 2}\log_2n)
,就可以做n=40的點了。
而更神奇的地方在於不同的字元相等關係的數量非常少,n=100的時候只有幾萬!所以我們就可以對每種相等關係dp它的容斥係數。這樣時間複雜度大約是
O(n^3*100000*log_2n)
的,但其實跑得挺快的。。100的話大約需要十幾秒吧。 這樣似乎還是A不了,但是注意到其實我們可以按照字串長度和不同種字元數量打表,這樣就搞定啦!
程式碼:
#include<cstdio>
int cnt[51][101]={1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,1,1,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,2,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,1,1,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,-1,0,2,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,-3,0,-1,0,0,1,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,-3,0,-1,1,1,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,-1,0,-1,0,-3,0,0,2,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,-1,-1,-1,-1,0,-3,1,1,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,-1,-1,-2,-1,-1,0,-2,2,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,0,0,1,-1,-2,-2,-1,-1,1,-1,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,0,0,-1,1,-2,-2,-2,-1,0,2,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,0,0,-1,-1,0,-2,-2,-2,0,1,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3,6,1,1,-1,2,0,-1,-1,-2,0,-2,-2,-1,1,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2,2,1,6,-1,0,-1,2,-1,-1,-2,-2,0,-2,-1,0,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-4,4,0,4,0,5,-2,0,-1,1,-1,-2,-2,-2,0,-1,0,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-4,4,-2,5,1,2,0,4,-2,0,-2,1,-2,-2,-2,-2,1,0,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7,7,-3,6,-2,5,0,2,-1,4,-2,-1,-2,0,-2,-2,-2,-1,2,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-5,0,-1,9,-3,5,-1,4,0,1,-1,4,-3,-1,-3,0,-2,-2,-1,0,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-8,4,-2,3,1,8,-5,7,-2,4,-1,1,-1,3,-3,-2,-3,0,-2,-1,0,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7,0,-4,8,0,4,-1,7,-3,6,-2,3,-1,1,-2,3,-4,-2,-3,0,-1,0,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7,0,-4,3,-1,9,0,3,-2,9,-4,6,-3,3,-1,0,-2,2,-4,-2,-3,1,0,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7,-2,-1,0,-1,6,-1,8,0,2,0,8,-4,5,-3,3,-2,0,-3,2,-4,-2,-2,2,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7,-4,-2,2,0,2,1,5,-1,8,-1,4,-1,8,-5,5,-3,2,-2,-1,-3,2,-4,-1,-1,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-8,-3,-3,-1,1,3,1,3,1,5,-1,7,1,3,-1,7,-5,5,-4,2,-3,-1,-3,2,-3,0,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-5,-7,-5,0,1,1,2,3,1,4,1,5,-2,9,0,3,-2,7,-5,4,-4,1,-3,-1,-3,3,-2,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7,-6,-3,-3,-2,3,3,1,1,4,2,4,1,4,0,8,0,2,-2,7,-6,4,-5,1,-3,-1,-2,4,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3,-11,-3,-4,-1,0,1,4,2,1,2,5,2,4,0,6,-1,8,-1,2,-2,6,-6,3,-5,1,-3,0,-1,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-5,-11,1,-8,-1,-1,1,3,1,2,3,2,3,5,2,3,2,5,-1,7,-1,2,-3,6,-7,3,-5,1,-2,1,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-18,-2,-7,4,-7,2,1,3,2,0,3,4,3,3,5,1,5,1,5,-2,7,-1,1,-3,5,-7,3,-5,2,-1,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-11,-5,-13,0,-2,4,-4,3,2,3,1,1,4,5,3,3,4,3,4,1,4,-2,7,-2,1,-4,5,-7,3,-4,3,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,-20,-2,-10,-1,-10,4,-2,7,-4,3,3,2,2,2,5,5,3,2,6,2,4,0,4,-2,6,-2,0,-4,5,-7,4,-3,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,-18,3,-14,-5,-6,2,-6,4,0,6,-3,4,2,3,3,3,5,5,2,4,5,2,3,0,4,-3,6,-3,0,-4,5,-6,5,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,-23,-1,-16,6,-15,0,-4,6,-7,5,0,7,-2,3,3,4,4,3,5,4,4,3,5,1,3,0,3,-3,5,-3,0,-4,6,-5,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,-20,5,-21,1,-14,5,-10,2,0,4,-7,6,1,8,-3,4,4,5,4,3,4,6,3,3,4,1,3,-1,3,-4,5,-3,0,-3,7,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,-29,5,-19,8,-22,6,-16,10,-8,5,-3,5,-6,7,2,7,-2,5,5,5,4,2,6,5,3,2,4,1,2,-1,2,-4,5,-3,1,-2,6,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,-15,0,-26,3,-15,9,-18,4,-11,11,-6,3,-2,6,-5,8,1,8,-1,6,5,5,3,4,5,5,2,2,4,0,2,-2,2,-4,5,-2,2,-3,6,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,-35,5,-16,7,-29,5,-13,13,-20,9,-11,12,-7,4,-1,7,-4,7,2,9,0,6,5,4,5,3,5,4,2,2,3,0,1,-2,2,-4,6,-1,1,-3,6,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,-23,3,-29,3,-13,6,-25,6,-9,11,-16,8,-9,11,-6,5,0,8,-5,8,3,10,0,6,4,6,4,3,4,4,2,1,3,-1,1,-2,2,-3,7,-2,1,-3,6,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,-26,11,-34,11,-32,7,-14,10,-24,10,-12,14,-16,10,-10,12,-5,6,1,7,-4,9,4,10,0,5,6,5,4,2,4,4,1,1,2,-1,1,-2,3,-2,6,-2,1,-3,6,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,-25,7,-25,8,-29,6,-26,6,-10,11,-20,6,-10,15,-14,9,-9,13,-4,7,0,8,-3,10,4,10,-1,7,5,5,3,2,4,3,1,0,2,-1,1,-1,4,-3,6,-2,1,-3,6,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,-38,14,-29,12,-33,15,-33,12,-27,10,-9,14,-25,9,-9,17,-15,10,-8,14,-3,6,1,9,-2,10,4,9,1,6,5,4,3,2,3,3,0,0,2,-1,2,0,3,-3,6,-2,1,-3,6,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,36,-19,12,-42,14,-25,5,-27,12,-27,11,-23,10,-7,10,-22,10,-7,16,-14,11,-7,15,-4,7,2,10,-2,10,3,11,0,6,4,4,3,1,3,2,0,0,2,0,3,-1,3,-3,6,-2,1,-3,6,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,46,-33,18,-32,16,-43,15,-30,12,-30,18,-28,15,-24,11,-10,13,-21,12,-8,17,-13,12,-6,14,-3,8,3,10,-2,9,5,10,0,5,4,4,2,1,2,2,0,0,3,1,2,-1,3,-3,6,-2,1,-3,6,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,47,-25,22,-45,15,-28,13,-40,9,-22,9,-24,17,-25,13,-22,8,-7,14,-19,11,-7,18,-12,13,-7,15,-2,9,3,10,-3,11,4,10,-1,5,4,3,2,0,2,2,0,1,4,0,2,-1,3,-3,6,-2,1,-3,6,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,54,-28,22,-38,22,-48,16,-31,18,-46,17,-25,15,-26,19,-26,15,-25,11,-6,16,-20,12,-6,19,-11,12,-6,16,-1,9,3,9,-1,10,4,9,-1,5,3,3,1,0,2,2,1,2,3,0,2,-1,3,-3,6,-2,1,-3,6,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,0,0,52,-21,25,-42,22,-34,13,-46,15,-27,13,-38,14,-19,12,-25,19,-24,12,-22,12,-4,15,-19,13,-5,20,-12,13,-5,17,-1,9,2,11,-2,10,3,9,-1,4,3,2,1,0,2,3,2,1,3,0,2,-1,3,-3,6,-2,1,-3,6,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1,0,0,0,59,-26,26,-35,21,-43,26,-43,15,-47,20,-32,21,-41,19,-23,14,-25,21,-27,15,-21,14,-5,16,-18,14,-4,19,-11,14,-4,17,-1,8,4,10,-2,9,3,9,-2,4,2,2,1,0,3,4,1,1,3,0,2,-1,3,-3,6,-2,1,-3,6,-6,4,-4,2,-2,0,-2,3,-3,-1,-2,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,1,-2,1,0,1,0,0,1,0,1,0,0,0,-1,-1,1};
int main(){
int n,m;
int power[105];
power[0]=1;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i)power[i]=power[i-1]*m;
int ans=0;
for(int i=1,tmp=1;i<=n;++i)
if(i&1)ans+=tmp*m;
else{
tmp=0;
for(int j=1;j<=i;++j)tmp+=power[j]*cnt[i>>1][j];
ans+=tmp;
}
printf("%u\n",ans);
}
總結:
①字串的題也不一定非要用字串演算法/資料結構嘛。可以直接考慮字元間的相等/不等關係。
相關文章
- 密碼遺失的Blog密碼
- oracle-管理員密碼遺失Oracle密碼
- 諾頓企業版密碼遺失解決辦法密碼
- mysql密碼遺忘和登陸報錯問題MySql密碼
- 2016計蒜之道複賽 百度地圖的實時路況(Floyd 分治)地圖
- 原始碼防洩密解決之道原始碼
- 原始碼防洩密解決之道(二)原始碼
- Linux遺忘root密碼的其中兩種解決方法Linux密碼
- mysql丟失root密碼的解決辦法MySql密碼
- 密碼遺忘通關手冊密碼
- [熵值] 解題報告熵
- Linux root密碼丟失的解決辦法Linux密碼
- 谷歌研究報告發現:一半受感染的雲例項存在弱密碼或無密碼的問題谷歌密碼
- ssh免密碼登入失敗解決密碼
- VA陣列遺忘進入安全設定的密碼,解決步驟陣列密碼
- linux系統root密碼遺忘的情況下的解決辦法Linux密碼
- ARC173 解題報告
- 遺失得 Laravel 設計模式-門面模式Laravel設計模式
- mysql root密碼丟失MySql密碼
- [Ahoi2014]奇怪的計算器 解題報告
- MySQL 5.7遺忘root密碼重置記錄MySql密碼
- 數字認證:密碼上雲之道密碼
- 詳細講述 Oracle 密碼丟失解決方法Oracle密碼
- root密碼丟失後三步解決(轉)密碼
- 計蒜客:最甜的蘋果(線段樹)蘋果
- 遺失的JVM堆記憶體JVM記憶體
- 奇怪了,windowsXP密碼失靈Windows密碼
- 報告:巨量引擎教育行業營銷之道行業
- 解決AIX忘記root密碼的問題AI密碼
- 支付寶app怎麼重置電子社保卡密碼?支付寶app重置電子社保卡密碼教程APP密碼
- 失戀報告--工程師失戀之後工程師
- 各類系統ROOT密碼丟失解決辦法密碼
- 各類unix和linux密碼丟失解決方法Linux密碼
- 程式碼分層的設計之道
- CF720B 解題報告
- P10499 解題報告
- 洛谷T90444 密碼 題解密碼
- 解決Oracle忘記密碼問題Oracle密碼