社区讨论
马拉车求条
P1659[国家集训队] 拉拉队排练参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mkdsh7x1
- 此快照首次捕获于
- 2026/01/14 16:59 上个月
- 此快照最后确认于
- 2026/01/17 20:23 上个月
CPP
#include<bits/stdc++.h>
#define mod 19930726
#define int long long
using namespace std;
int n,k,s[2000006],ans=1,qz,sum,to[2000006];
string t;
char c;
bool cmp(int x,int y){
return x>y;
}
int ksm(int x,int y){
int sum=1;
while(y){
if(y&1)sum=(sum*x)%mod;
x=(x*x)%mod;
y>>=1;
}
return sum;
}
signed main(){
cin>>n>>k>>t;
for(int l=0,r=-1,i=0;i<n;i++){
int j=(i>r)?1:min(s[l+r-i],r-i+1);
while(0<=i-j&&i+j<n&&t[i-j]==t[i+j]) j++;
s[i]=j*2-1;
if(i+j-1>r){
r=i+j-1;
l=i-j+1;
}
to[s[i]]++;
}
for(int i=n;i>=1;i--){
if(k>to[i]){
ans*=ksm(i,to[i]);
ans%=mod;
k-=to[i];
}
else{
ans*=ksm(i,k);
ans%=mod;
k=0;
break;
}
to[i-2]+=to[i];
}
if(k!=0) cout<<"-1";
else cout<<ans;
return 0;
}/*
5 9
abcba
*/
回复
共 3 条回复,欢迎继续交流。
正在加载回复...