ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#203609 | #21. T2 | UperFicial | 100 | 11857ms | 470668kb | C++11 | 2.5kb | 2024-02-28 11:27:43 | 2024-02-28 12:17:33 |
answer
#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define per(i,a,b) for(int i=(b);i>=(a);i--)
#define endl "\n"
#define For(i,u) for(int i=head[u];i;i=e[i].next)
#define V vector<int>
#define VV vector<V>
#define Debug(a) cout<<"QwQ "<<a<<endl;
#define FST NOT_FST
#define trash_round unrated
#define pint pair<int,int>
#define fi first
#define se second
#define Vp vector<pint>
using namespace std;
int n,m,MOD;
int read()
{
int x;
scanf("%d",&x);
return x;
}
string reads()
{
char ch=getchar();string s;
while(ch<'a'||ch>'z'){ch=getchar();}
while(ch>='a'&&ch<='z'){s+=ch;ch=getchar();}
return s;
}
char readc()
{
char ch=getchar();
while(ch<'a'||ch>'z') ch=getchar();
return ch;
}
// down is mytrue code ------------------------------
const int N=1e6+5,M=55;
int a[M][M],A[N][M],del[M];//ǰ׺inv(×îºóÒ»ÁÐ)
int B[N][M],b[M][M];//ǰ׺mi(ÿһÁкÍ)
ll u[N],v[N],l[N],r[N],ans[N],D=1e9+7;
char c[N];
int solve(int l,int r)
{
int ans=0;
rep(i,0,52)
{
// cout<<i<<" "<<A[l-1][i]<<" "<<B[r][i]<<endl;
(ans+=1ll*A[l-1][i]*B[r][i]%MOD)%=MOD;
}
// cout<<ans<<endl;
if(ans!=0) ans--;
else ans=MOD-1;
return ans;
}
int add(int x,int y)
{
x+=y;
if(x>=MOD) x-=MOD;
if(x<0) x+=MOD;
return x;
}
signed main()
{
int n=read(),m=read();
MOD=read();
int tp=read();
scanf("%s",c+1);
A[0][52]=1;
rep(j,0,52) B[0][j]=1,b[j][j]=1,a[j][j]=1;
rep(i,1,n)
{
int k;
if(c[i]>='A'&&c[i]<='Z') k=c[i]-'A';
else k=c[i]-'a'+26;
int t;
rep(j,0,52)
{
t=add(a[j][k],-del[j]);
del[j]=add(del[j],t);
a[j][k]=add(a[j][k],t);
}
rep(j,0,52) A[i][j]=add(a[j][52],-del[j]);
rep(j,0,52)
{
B[i][j]=add(B[i-1][j]*2%MOD,-b[k][j]);
b[k][j]=B[i-1][j];
}
}
// rep(i,1,n)
// {
// rep(j,0,52)
// {
// cout<<A[i][j]<<" ";
// }
// cout<<endl;
// }
// rep(i,1,n)
// {
// rep(j,0,52)
// {
// cout<<B[i][j]<<" ";
// }
// cout<<endl;
// }
if(!tp)
{
int last=0;
rep(i,1,m)
{
int l=read(),r=read();
last^=solve(l,r);
}
cout<<last<<endl;
}
else
{
ll x=read(),y=read(),a=read(),b=read(),c=read();
u[0]=x,v[0]=y;
rep(i,1,m)
{
u[i]=((a*u[i-1]+b*v[i-1]+c*i)^ans[i-1])%D;
v[i]=((b*u[i-1]+c*v[i-1]+a*i)^ans[i-1])%D;
l[i]=min(u[i]%n+1,v[i]%n+1);
r[i]=max(u[i]%n+1,v[i]%n+1);
// cout<<u[i]<<" "<<v[i]<<" "<<l[i]<<" "<<r[i]<<endl;
ans[i]=solve(l[i],r[i]);
// cout<<ans[i]<<endl;
}
cout<<ans[m]<<endl;
}
return 0;
}
这程序好像有点Bug,我给组数据试试?
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 5
Accepted
time: 0ms
memory: 1260kb
input:
15 100 948805069 0 lxtotqfsohggevl 5 6 11 11 2 8 1 12 3 7 10 13 6 10 3 11 11 14 5 9 4 4 6 14 15 15 1...
output:
8548
result:
ok 1 number(s): "8548"
Test #2:
score: 5
Accepted
time: 0ms
memory: 1280kb
input:
20 97 989348567 1 jtfafthctxxtdwubtzpe 741807267 412148822 143552381 499390273 886209029
output:
4415
result:
ok 1 number(s): "4415"
Test #3:
score: 5
Accepted
time: 0ms
memory: 1728kb
input:
1000 991 932742221 1 abaaaabaaaabbbaabbabbabbbabbaabaabbabbaaaaabaabbaaaabbaabbabbbabaabaabbbbbaabbb...
output:
872177429
result:
ok 1 number(s): "872177429"
Test #4:
score: 5
Accepted
time: 0ms
memory: 1680kb
input:
988 974 991403639 0 ffdbagjiabhcbhhafccifcicdibbegbfjciijceebdcihaecjcjgedabiafhcebfhjhafihheafcibeb...
output:
540230197
result:
ok 1 number(s): "540230197"
Test #5:
score: 5
Accepted
time: 2ms
memory: 1724kb
input:
980 1000 972034103 1 frgCgtcksyhiuBkjnoiutffkccaiCdmjiDrsqkmolrafoxsyxpjencxCjlmbmDapxifzDlpkzfDpqlc...
output:
99250938
result:
ok 1 number(s): "99250938"
Test #6:
score: 5
Accepted
time: 0ms
memory: 1728kb
input:
992 995 920406419 1 izWVrAwtgveRwqPxtpexjuooVoqQwvYSAXylMiGgFkNliqrDmPqUOIgnuPhPLGkXOFPGaHfwxJfGedho...
output:
610154493
result:
ok 1 number(s): "610154493"
Test #7:
score: 5
Accepted
time: 71ms
memory: 24748kb
input:
50000 50000 939141901 1 caaacbacaabcccabababccbabbbacaabacaababbccbabbbabcbaabababcbabacccbcacaacbaa...
output:
60595922
result:
ok 1 number(s): "60595922"
Test #8:
score: 5
Accepted
time: 78ms
memory: 22560kb
input:
49486 49831 944412583 0 bhgghgifdicccfceaegchjgjjajbgdjdijcbefecgbffdaceffgdadhgdbhiddecbghcbgjjeibi...
output:
129707546
result:
ok 1 number(s): "129707546"
Test #9:
score: 5
Accepted
time: 166ms
memory: 44188kb
input:
99699 98499 950617859 0 abbbcbbcbcaaaccacacbabaabbacbaccacaaacaabbcccbaacaccabbbaccaccccbbabbacbbaab...
output:
1038586289
result:
ok 1 number(s): "1038586289"
Test #10:
score: 5
Accepted
time: 133ms
memory: 47788kb
input:
99028 99227 917378563 1 ahfbbgbdgchjffeajeddgichhbhibaehecddjebejcfabcafeiecfdhccjcdjfegjafcggigdcfi...
output:
670219368
result:
ok 1 number(s): "670219368"
Test #11:
score: 5
Accepted
time: 41ms
memory: 44316kb
input:
100000 1 971758357 0 ghddhjihfjjeffbgciicbifaaajhcachcdgfaiebgjjcjbacgccjcahddfcdefdhifccaihdjghibbd...
output:
621613165
result:
ok 1 number(s): "621613165"
Test #12:
score: 5
Accepted
time: 36ms
memory: 43772kb
input:
98742 1 964324297 0 qFQhCALneJvtkKaazitvKgmyzkCrFoyfEgifFapKxZCZAxXAQgohQSGsNGOnlPgsUlzjHFixsQQubemS...
output:
662652988
result:
ok 1 number(s): "662652988"
Test #13:
score: 5
Accepted
time: 1425ms
memory: 464268kb
input:
985392 988924 940107673 1 bccsecgtjcgbmpibjscemkpddhlngofmoeirsgsqgfkrabfghdgejhabjpklancoadqodfshha...
output:
237224621
result:
ok 1 number(s): "237224621"
Test #14:
score: 5
Accepted
time: 1466ms
memory: 467216kb
input:
991298 1000000 946066763 1 ichmmgnophgdeafqhakgpboaqsrfhsksfebmtipmebtgbjcokqtqhjbtrgjapainhdgdnehdp...
output:
216882804
result:
ok 1 number(s): "216882804"
Test #15:
score: 5
Accepted
time: 1408ms
memory: 470256kb
input:
1000000 981472 921606403 1 MvCbDqyAGEuwGakyHLjqNszqgIhwzdzmbcxtKeAfIrwflJgBpFMeodddwhsEHkdIoAKBmJvHM...
output:
589409657
result:
ok 1 number(s): "589409657"
Test #16:
score: 5
Accepted
time: 1406ms
memory: 466624kb
input:
989926 1000000 916856789 1 fyKikxprDzrMiGcmGgDpjmAJFMCcsqtdGClCgBexxIBFwbdpiyjkkkBCijnlduDlCqCiEcoja...
output:
914517434
result:
ok 1 number(s): "914517434"
Test #17:
score: 5
Accepted
time: 1392ms
memory: 466248kb
input:
989896 990053 929409779 1 iWXAmkZnIeWwHQlTNEHyqsPyufZrBJswNzqrbnyardPhXqhEpkWHSHvCfmEswhaztzRsolrESd...
output:
893455734
result:
ok 1 number(s): "893455734"
Test #18:
score: 5
Accepted
time: 1383ms
memory: 470668kb
input:
999316 999505 999621019 1 CMCmzhadDuqpIItNPywXBqYGsmtCrOHZRgBkEgsrTxlnNnlYdaPocSyNYSKKdJvoEINCpDzcXy...
output:
502774340
result:
ok 1 number(s): "502774340"
Test #19:
score: 5
Accepted
time: 1425ms
memory: 470652kb
input:
1000000 991480 942154177 1 NpsuQfVPdBvubQzKOQdmRgMTyHAFwJJnVzHLKfQNcGgDzITJferBIqATCjcpMRvHRdhhSvZSF...
output:
334208970
result:
ok 1 number(s): "334208970"
Test #20:
score: 5
Accepted
time: 1425ms
memory: 467608kb
input:
992201 999520 917378563 1 OFVtpUtPiuJTRRQAlojpeUCjltLorquLOWLDvczOPwfkFiapQQOiTtjYgFiDVDQsRUTGmmWGXU...
output:
49315597
result:
ok 1 number(s): "49315597"
Extra Test:
score: 0
Extra Test Passed