【題目鏈結】
【演算法】
先簡化題意 : 給定乙個字串,求最長的k個奇回文子串長度的乘積
先執行manacher演算法,對於每個位置i,我們知道以i為中心的回文串的最長半徑為pi,那麼i這個位置對半徑為1-p[i]的回文串的個數都產生了1的」貢獻「
因此,我們可以用差分求出任意半徑的回文串個數,然後統計答案即可,注意要用快速冪
【**】
#includeusingnamespace
std;
#define maxn 1000010
const
int p = 19930726
;typedef
long
long
ll;int
i,len,n;
ll sum,ans,k;
intp[maxn];
ll cnt[maxn];
char
s[maxn];
inline ll power(ll a,ll n)
return
ans;
}
inline
void
manacher()
}
}int
main()
for (i = 1; i <= (len + 1) / 2; i++) cnt[i] += cnt[i-1
]; sum = 0; ans = 1
;
for (i = (len + 1) / 2; i >= 1; i--)
else
}if (sum < k) printf("
-1\n");
else printf("
%lld\n
",ans);
return0;
}
BZOJ 2160 拉拉隊排練
time limit 10 sec memory limit 259 mb submit 832 solved 326 submit status discuss 艾利斯頓商學院籃球隊要參加一年一度的市籃球比賽了。拉拉隊是籃球比賽的乙個看點,好的拉拉隊往往能幫助球隊增加士氣,贏得最終的比賽。所以作為...
bzoj2160 拉拉隊排練
神犇曰 這道題不就是manacher裸題麼,隨便切一切吧 我 manacher是個啥。我只會hash啊。看完manacher教程後 嗯?這都是個卵啊。我去寫hash吧。於是hash的pow陣列寫掛了。一直在wa。終於a掉了。正著hash一遍然後反著hash一遍,最後暴力二分就ok。就醬紫。1 inc...
BZOJ2160 拉拉隊排練
艾利斯頓商學院籃球隊要參加一年一度的市籃球比賽了。拉拉隊是籃球比賽的乙個看點,好的拉拉隊往往能幫助球隊增加士氣,贏得最終的比賽。所以作為拉拉隊隊長的楚雨蕁同學知道,幫助籃球隊訓練好拉拉隊有多麼的重要。拉拉隊的選拔工作已經結束,在雨蕁和校長的挑選下,n位集優秀的身材 舞技於一體的美女從眾多報名的女生中...