QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#21912 | #2836. Permutation Pattern | LFCode# | AC ✓ | 409ms | 123048kb | C++14 | 1.7kb | 2022-03-08 17:21:01 | 2022-05-08 04:14:38 |
Judging History
answer
//什么时候我才能有杜爷一半强啊/kk
#include<cstdio>
const int N=55;
int n,p[N],pos[N],mx[N],mn[N];
long long f[N][N][N][N],s[N][N][N][N];
int Max(int a,int b){return a>b?a:b;}
int Min(int a,int b){return a<b?a:b;}
int read(){
char ch=getchar();int nn=0,ssss=1;
while(ch<'0'||ch>'9'){if(ch=='-')ssss*=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){nn=nn*10+(ch-'0');ch=getchar();}
return nn*ssss;
}
bool solve(){
for(int i=1;i<=n;i++){
mx[i]=mn[i]=p[i]=read();
pos[p[i]]=i;f[i][i][p[i]][p[i]]=1;
for(int d=1;d<=p[i];d++)
for(int u=p[i];u<=n;u++)
s[i][i][d][u]=1;
}
//f[left][right][low][high]
for(int len=2;len<=n;len++){
for(int l=1;l+len-1<=n;l++){
int r=l+len-1;
mn[l]=Min(mn[l],p[r]);
mx[l]=Max(mx[l],p[r]);
if(l==1&&r==4)
while(0);
for(int u=mx[l];u>=mn[l];u--){
if(pos[u]<l||pos[u]>r)continue;
f[l][r][u][u]=1;
for(int d=u-1;d>=mn[l];d--){
if(pos[d]<l||pos[d]>r)continue;
int np=pos[u];
for(int k=d;k<u;k++){
f[l][r][d][u]+=f[l][np-1][d][k];
f[l][r][d][u]+=f[l][np-1][d][k]*s[np+1][r][k+1][u-1];
f[l][r][d][u]+=f[np+1][r][d][k];
}
//printf("f[%d][%d][%d][%d]=%lld\n",l,r,d,u,f[l][r][d][u]);
}
}
for(int nl=1;nl<=n;nl++)
for(int d=1;d+nl-1<=n;d++){
int u=d+nl-1;
s[l][r][d][u]=f[l][r][d][u];
s[l][r][d][u]+=s[l][r][d+1][u];
s[l][r][d][u]+=s[l][r][d][u-1];
s[l][r][d][u]-=s[l][r][d+1][u-1];
}
}
}
printf("%lld\n",s[1][n][1][n]);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
for(int d=1;d<=n;d++)
for(int u=1;u<=n;u++)
f[i][j][d][u]=s[i][j][d][u]=0;
return 0;
}
int main(){
//freopen("J.in","r",stdin);
while(~scanf("%d",&n))solve();
}
详细
Test #1:
score: 100
Accepted
time: 2ms
memory: 11924kb
input:
2 2 1 3 1 2 3 4 2 3 4 1
output:
3 7 11
result:
ok 3 lines
Test #2:
score: 0
Accepted
time: 1ms
memory: 7876kb
input:
1 1 2 1 2 2 2 1 3 1 2 3 3 1 3 2 3 2 1 3 3 2 3 1 3 3 1 2 3 3 2 1
output:
1 3 3 7 7 7 6 7 7
result:
ok 9 lines
Test #3:
score: 0
Accepted
time: 1ms
memory: 11984kb
input:
5 4 5 2 1 3 5 2 5 1 4 3 5 1 2 5 3 4 5 2 4 5 3 1 5 3 4 2 1 5 5 1 3 5 2 4 5 3 4 2 1 5 5 5 1 4 3 2 5 1 5 4 2 3 5 5 2 1 3 4 5 4 5 1 2 3 5 5 2 1 4 3 5 5 3 1 4 2 5 5 1 2 3 4 5 3 2 1 4 5 5 4 3 1 2 5 5 1 3 4 2 5 5 5 4 2 3 1 5 2 4 1 5 3 5 3 5 1 4 2 5 4 2 3 1 5 5 1 5 2 3 4 5 3 2 1 4 5 5 4 5 2 1 3 5 3 2 4 5 1 ...
output:
24 27 31 20 25 27 25 31 31 31 24 31 27 31 31 31 27 27 24 23 27 31 31 24 21 25 21 27 24 25 31 31 25 24 20 31 27 21 21 31 27 31 21 31 21 31 24 22 31 25 25 27 25 27 27 27 31 31 31 22 25 31 27 25 31 22 31 27 25 20 27 22 31 31 25 20 31 31 25 31 27 27 25 20 31 31 31 27 31 31 22 21 25 31 25 27 19 31 27 23
result:
ok 100 lines
Test #4:
score: 0
Accepted
time: 1ms
memory: 11940kb
input:
4 1 2 3 4 4 1 2 4 3 4 1 3 2 4 4 1 3 4 2 4 1 4 2 3 4 1 4 3 2 4 2 1 3 4 4 2 1 4 3 4 2 3 1 4 4 2 3 4 1 4 2 4 1 3 4 2 4 3 1 4 3 1 2 4 4 3 1 4 2 4 3 2 1 4 4 3 2 4 1 4 3 4 1 2 4 3 4 2 1 4 4 1 2 3 4 4 1 3 2 4 4 2 1 3 4 4 2 3 1 4 4 3 1 2 4 4 3 2 1
output:
15 15 15 13 15 15 15 15 13 11 13 12 15 13 15 12 12 12 15 15 15 13 15 15
result:
ok 24 lines
Test #5:
score: 0
Accepted
time: 4ms
memory: 12040kb
input:
5 1 2 3 4 5 5 1 2 3 5 4 5 1 2 4 3 5 5 1 2 4 5 3 5 1 2 5 3 4 5 1 2 5 4 3 5 1 3 2 4 5 5 1 3 2 5 4 5 1 3 4 2 5 5 1 3 4 5 2 5 1 3 5 2 4 5 1 3 5 4 2 5 1 4 2 3 5 5 1 4 2 5 3 5 1 4 3 2 5 5 1 4 3 5 2 5 1 4 5 2 3 5 1 4 5 3 2 5 1 5 2 3 4 5 1 5 2 4 3 5 1 5 3 2 4 5 1 5 3 4 2 5 1 5 4 2 3 5 1 5 4 3 2 5 2 1 3 4 5 ...
output:
31 31 31 27 31 31 31 31 27 23 27 25 31 27 31 25 25 25 31 31 31 27 31 31 31 31 31 27 31 31 27 27 23 20 23 21 27 24 25 21 21 20 27 27 25 22 25 24 31 31 27 23 27 25 31 31 25 21 25 22 25 21 25 20 19 19 25 23 25 21 22 22 31 27 31 25 25 25 31 27 27 22 23 21 31 25 31 24 22 22 24 24 24 21 24 24 31 31 31 27
result:
ok 100 lines
Test #6:
score: 0
Accepted
time: 4ms
memory: 11980kb
input:
5 5 1 4 2 3 5 5 1 4 3 2 5 5 2 1 3 4 5 5 2 1 4 3 5 5 2 3 1 4 5 5 2 3 4 1 5 5 2 4 1 3 5 5 2 4 3 1 5 5 3 1 2 4 5 5 3 1 4 2 5 5 3 2 1 4 5 5 3 2 4 1 5 5 3 4 1 2 5 5 3 4 2 1 5 5 4 1 2 3 5 5 4 1 3 2 5 5 4 2 1 3 5 5 4 2 3 1 5 5 4 3 1 2 5 5 4 3 2 1
output:
31 31 31 31 27 23 27 25 31 27 31 25 25 25 31 31 31 27 31 31
result:
ok 20 lines
Test #7:
score: 0
Accepted
time: 1ms
memory: 12136kb
input:
6 3 4 5 1 6 2 6 3 4 5 6 1 2 6 4 2 5 6 3 1 6 3 5 2 6 4 1 6 3 2 4 1 5 6 6 5 1 4 3 2 6 6 4 6 3 2 1 5 6 3 4 6 5 1 2 6 5 1 2 6 4 3 6 3 5 2 6 1 4 6 6 5 4 1 2 3 6 1 3 2 5 4 6 6 2 3 1 5 4 6 6 1 4 6 3 5 2 6 3 2 4 5 6 1 6 1 2 6 3 4 5 6 5 4 6 1 2 3 6 4 1 2 5 3 6 6 4 1 3 5 2 6 6 6 1 5 2 4 3 6 2 3 1 5 6 4 6 1 4 ...
output:
33 30 33 34 51 63 49 33 51 38 63 63 55 43 38 63 42 55 51 63 48 39 39 51 45 63 46 51 51 63 55 63 42 55 63 45 63 40 47 40 47 51 55 39 51 55 44 49 63 42 63 63 37 36 63 63 39 40 49 63 63 51 51 47 47 45 39 36 63 55 55 63 51 51 37 42 51 55 51 49 39 43 55
result:
ok 83 lines
Test #8:
score: 0
Accepted
time: 1ms
memory: 12180kb
input:
7 2 1 4 3 5 7 6 7 5 4 7 6 3 2 1 7 7 2 5 3 6 4 1 7 6 3 1 5 4 2 7 7 6 5 4 7 2 1 3 7 4 1 7 2 5 3 6 7 5 3 1 6 2 7 4 7 3 7 1 6 5 4 2 7 6 2 1 5 4 3 7 7 4 7 6 3 1 2 5 7 4 6 3 7 1 2 5 7 6 5 2 1 7 3 4 7 4 1 2 6 3 7 5 7 3 1 6 7 5 2 4 7 4 7 3 6 1 5 2 7 3 6 5 4 7 1 2 7 1 7 2 4 3 5 6 7 2 6 1 3 5 7 4 7 1 2 7 4 6 ...
output:
127 64 73 103 78 95 81 89 127 85 66 91 99 79 67 61 127 91 111 83 67 60 127 85 57 66 111 99 111 53 64 99 89 91 73 99 75 83 103 81 72 75 69 99 64 99 91 91 95 85 66 60 79 103 64 64 91 83 67 87 75 91 75 103 95 75 71 54 89 68 65
result:
ok 71 lines
Test #9:
score: 0
Accepted
time: 4ms
memory: 12428kb
input:
8 4 1 2 7 8 5 6 3 8 7 2 8 6 4 5 1 3 8 2 3 4 8 6 5 1 7 8 5 8 3 6 2 1 4 7 8 2 4 3 8 1 7 5 6 8 5 7 8 4 6 3 1 2 8 1 4 2 7 5 3 8 6 8 6 7 8 4 3 1 2 5 8 7 2 5 1 6 4 8 3 8 8 1 4 7 2 5 6 3 8 6 8 7 3 2 1 5 4 8 7 6 8 2 1 3 5 4 8 1 5 6 4 2 7 3 8 8 6 3 2 7 8 4 1 5 8 6 2 3 7 4 5 8 1 8 4 5 7 1 8 3 2 6 8 7 4 1 6 5 ...
output:
143 125 149 143 175 98 183 131 147 167 162 162 159 107 117 102 183 135 129 155 80 191 135 165 155 171 103 255 169 125 111 102 114 90 255 111 107 255 95 139 167 159 171 168 83 191 91 90 165 115 207 109 159 141 223 100 159 97 101 167 103 132
result:
ok 62 lines
Test #10:
score: 0
Accepted
time: 1ms
memory: 12624kb
input:
9 2 3 7 8 9 6 1 5 4 9 1 6 3 4 2 9 8 7 5 9 1 9 2 6 7 3 4 5 8 9 4 2 1 5 6 3 9 7 8 9 5 1 2 4 3 8 6 9 7 9 5 3 6 2 9 8 7 1 4 9 2 1 9 8 5 3 6 4 7 9 5 4 1 7 8 3 9 6 2 9 2 1 9 6 5 4 8 3 7 9 5 3 6 4 9 2 7 1 8 9 3 7 1 4 6 9 8 5 2 9 5 1 9 4 8 7 3 2 6 9 5 8 7 4 9 6 3 2 1 9 5 7 2 1 3 9 4 6 8 9 9 8 5 1 4 6 7 3 2 ...
output:
183 349 399 383 447 176 447 173 399 187 197 255 154 309 271 224 239 177 107 351 183 271 279 161 175 267 263 213 155 319 223 219 215 181 259 271 225 112 337 195 175 199 337 195 279 511 212 182 217 180 353 205 279 271 259
result:
ok 55 lines
Test #11:
score: 0
Accepted
time: 3ms
memory: 12920kb
input:
10 3 8 6 9 7 5 2 1 4 10 10 9 4 6 10 2 5 3 1 8 7 10 7 8 5 10 2 9 3 1 4 6 10 8 6 9 10 7 3 4 5 2 1 10 5 2 4 3 8 6 1 7 9 10 10 1 2 8 4 5 7 10 9 6 3 10 8 3 4 6 5 10 9 7 2 1 10 3 9 10 4 5 1 2 8 6 7 10 4 8 2 3 9 10 5 6 1 7 10 2 3 4 1 8 7 9 5 10 6 10 4 10 6 2 3 1 8 5 7 9 10 8 7 6 2 4 9 10 1 5 3 10 1 9 6 5 1...
output:
355 367 271 213 615 439 267 433 292 455 543 319 331 671 895 279 523 623 291 319 387 513 367 383 1023 424 283 583 341 407 355 291 575 373 316 297 412 603 565 431 575 306 341 267 367 421 300 383 735 511
result:
ok 50 lines
Test #12:
score: 0
Accepted
time: 5ms
memory: 12952kb
input:
2 2 1 8 3 8 1 6 2 7 4 5 2 2 1 3 2 1 3 6 3 4 6 5 1 2 1 1 4 2 4 3 1 1 1 6 1 3 4 2 6 5 9 5 8 9 2 1 3 7 4 6 2 1 2 9 4 3 7 9 1 2 5 6 8 6 4 6 1 5 3 2 4 3 1 4 2 6 2 1 3 6 4 5 2 1 2 2 1 2 7 4 7 2 3 5 1 6 2 2 1 1 1 7 2 7 6 5 1 4 3 2 2 1 4 3 1 2 4 8 7 8 2 6 5 1 4 3 9 4 5 1 2 6 3 7 9 8 10 1 3 2 9 5 7 8 10 6 4 ...
output:
3 158 3 7 33 1 12 1 55 249 3 247 43 13 63 3 3 73 3 1 99 3 15 156 335 495 53 15 135 7 3 318 7 1 27 135 1 287 138 205 1 103 895 15 15 27 175 75 73 175
result:
ok 50 lines
Test #13:
score: 0
Accepted
time: 389ms
memory: 121628kb
input:
50 3 50 12 35 11 7 17 49 1 9 41 5 4 27 6 22 8 20 44 43 10 13 15 42 38 16 18 19 30 2 23 21 34 24 32 25 45 39 40 48 26 28 37 36 33 31 29 47 46 14 50 41 21 40 37 36 31 30 3 2 1 34 27 8 4 5 9 28 17 10 11 7 12 15 38 13 14 6 18 20 25 24 16 22 29 26 35 32 33 46 45 50 42 47 48 49 23 43 39 44 19 50 41 38 23 ...
output:
71786596197 925094043175 15360313400319 83273752556543 599976015791 6320724096624 5783738400607 487480246255 307563605 419463685996543
result:
ok 10 lines
Test #14:
score: 0
Accepted
time: 358ms
memory: 122892kb
input:
50 34 20 49 44 4 16 7 24 26 46 31 12 22 47 17 21 29 14 23 9 11 2 30 33 18 8 19 13 38 15 39 28 48 27 35 3 40 42 37 6 25 32 43 10 45 1 50 41 5 36 50 2 29 24 7 1 3 8 4 12 5 6 10 9 26 11 23 13 44 14 16 41 37 15 19 20 34 33 32 21 45 40 22 17 28 25 27 18 30 31 35 38 36 39 43 42 50 46 49 47 48 50 28 19 18 ...
output:
469303887 3708187017215 320672525975551 2384027442511 7802888619 54571757666 12111593784831 124903382056959 22915448657023 181636580245503
result:
ok 10 lines
Test #15:
score: 0
Accepted
time: 364ms
memory: 122248kb
input:
50 1 2 3 16 5 4 6 12 10 9 8 7 11 14 13 15 42 41 40 21 17 19 18 20 26 25 22 24 23 28 27 39 29 36 32 31 30 33 35 34 38 37 43 45 44 50 46 47 48 49 50 24 30 13 12 44 9 8 6 26 1 5 3 10 11 23 15 14 16 18 17 21 19 22 37 25 33 27 2 32 31 28 29 40 36 20 34 50 47 41 4 38 42 43 46 45 48 39 35 7 49 50 45 44 25 ...
output:
1125899906842623 1973544596971 20464777601 145970369134591 1125899906842623 27103062537 492677980225535 611302507087 9436138365023 16901739359823
result:
ok 10 lines
Test #16:
score: 0
Accepted
time: 349ms
memory: 121656kb
input:
50 16 15 13 12 11 4 3 2 1 5 10 30 27 8 6 7 9 22 38 20 19 14 17 37 31 29 23 21 26 24 25 33 32 36 34 39 41 28 40 45 44 43 35 18 42 46 48 47 49 50 50 49 48 43 42 41 24 23 22 29 5 39 3 2 1 4 21 19 8 33 7 9 10 17 12 11 14 13 15 6 16 18 20 40 26 25 37 31 30 28 27 35 34 32 36 38 47 44 46 45 50 50 26 25 24 ...
output:
16941091848191 76454653671423 1125899906842623 281482263953919 1853535582743 11131049930979 914793674309631 109343881936895 323479068999679 226499395534975
result:
ok 10 lines
Test #17:
score: 0
Accepted
time: 342ms
memory: 122820kb
input:
50 48 47 46 45 44 30 35 24 3 16 12 10 4 2 1 9 8 7 6 15 13 14 31 28 27 18 19 20 17 11 25 21 26 5 23 43 29 34 32 33 37 38 36 39 40 22 42 41 49 50 50 50 13 47 44 43 49 42 34 32 31 30 28 27 26 25 14 9 8 7 5 24 3 1 4 12 6 10 2 16 15 11 21 20 18 17 19 22 23 29 33 35 37 36 39 38 40 41 46 45 48 50 46 43 25 ...
output:
13401186994175 58470124486783 3963515139491 18417882639247 1483926119947 74820097933311 76869894769151 138492980779 86510044435583 986103193471
result:
ok 10 lines
Test #18:
score: 0
Accepted
time: 348ms
memory: 122520kb
input:
50 50 49 48 47 45 42 41 40 39 38 18 17 16 1 15 14 5 4 2 3 7 6 8 13 11 10 9 12 32 27 26 25 24 19 20 23 21 22 28 29 31 30 37 33 36 35 34 43 44 46 50 3 1 2 5 4 11 6 33 43 19 8 21 18 17 9 13 10 34 12 15 16 20 31 29 22 24 25 26 28 7 30 42 41 32 35 38 27 37 36 40 39 44 45 23 46 49 48 47 14 50 50 46 45 44 ...
output:
1125899906842623 11503392639871 268613428707327 15555678637567 9233630159167 22814306219679 170131707658239 633318697600255 774159265169407 143738636705815
result:
ok 10 lines
Test #19:
score: 0
Accepted
time: 365ms
memory: 122848kb
input:
50 33 30 29 39 28 50 27 24 23 22 21 20 19 18 15 4 7 2 3 25 5 8 1 6 14 11 9 10 32 12 13 16 17 26 31 37 34 35 36 40 38 41 42 43 45 44 46 49 47 48 50 37 36 32 25 22 21 20 19 12 9 7 3 2 1 4 5 6 8 10 11 18 17 15 13 14 16 24 23 26 27 29 28 30 31 35 34 33 38 39 40 41 46 42 44 43 45 50 47 48 49 50 8 7 6 5 1...
output:
38933422040063 1125899906842623 562950014763007 44651459044351 26429508299007 22574688062335 50191439772447 48552580405247 976228746199 286807572873215
result:
ok 10 lines
Test #20:
score: 0
Accepted
time: 346ms
memory: 121448kb
input:
50 2 12 3 6 5 4 11 8 10 39 9 15 13 14 25 34 31 38 32 29 19 17 16 18 28 7 27 20 22 21 23 26 24 30 40 37 35 41 33 1 49 43 42 36 48 47 44 45 46 50 50 49 45 43 39 24 38 28 27 25 23 22 20 19 18 3 2 1 17 6 13 4 15 14 29 11 7 8 12 21 37 36 35 26 9 34 32 44 31 30 33 10 42 41 16 40 48 46 47 50 5 50 6 5 4 3 2...
output:
17351472343295 4556477881839 2463120461823 10732306780233 1125899906842623 1125899906842623 914793674309631 360661339078655 56122596884479 1125899906842623
result:
ok 10 lines
Test #21:
score: 0
Accepted
time: 343ms
memory: 122096kb
input:
50 13 11 10 7 12 6 5 2 1 3 4 9 8 14 15 16 18 17 20 19 26 22 21 25 24 23 27 28 29 30 32 31 35 34 33 36 40 39 37 38 41 42 44 43 46 45 47 48 49 50 50 33 5 4 3 2 1 31 27 10 9 6 8 7 25 24 12 15 13 14 23 22 20 19 16 18 17 21 26 29 28 30 32 34 43 37 39 35 36 38 42 40 11 41 44 46 45 47 48 50 49 50 12 9 4 2 ...
output:
636067476668415 457397606285311 562949953748991 193106020401151 156758753177599 562950161039359 1125899906842623 174067508416955 12327032671235 130364051111935
result:
ok 10 lines
Test #22:
score: 0
Accepted
time: 340ms
memory: 122244kb
input:
50 23 22 21 20 30 19 18 17 6 24 5 1 2 3 4 7 8 15 9 27 10 14 12 11 13 16 28 26 34 41 32 31 29 35 33 40 39 36 37 38 42 49 47 25 43 44 46 45 48 50 50 44 40 39 29 45 20 6 16 1 2 4 3 5 18 11 7 8 10 9 15 13 12 14 17 19 25 21 22 23 35 24 26 28 27 30 37 36 34 32 31 33 38 41 42 46 43 49 48 47 50 50 22 21 18 ...
output:
52374859921919 183793727635071 1125899906842623 164982120296479 291112892864703 84576527974399 149606796066815 1125899906842623 1125899906842623 26141702275847
result:
ok 10 lines
Test #23:
score: 0
Accepted
time: 409ms
memory: 123048kb
input:
50 19 27 40 18 49 41 4 42 23 44 13 12 6 14 20 17 28 35 43 21 15 29 34 2 38 48 10 9 32 31 22 11 3 50 36 45 8 25 30 37 1 5 24 16 26 7 33 39 46 47 50 12 26 47 33 38 49 1 20 39 17 42 18 37 6 30 19 22 23 5 31 45 41 9 16 34 10 7 35 46 50 2 24 11 40 4 32 27 13 48 14 36 3 43 44 8 25 28 21 29 15 50 22 32 36 ...
output:
247169890 56493847 155005117 61848536 421559517 201522429 133241515 63264935 97358485 652628926
result:
ok 10 lines
Test #24:
score: 0
Accepted
time: 40ms
memory: 121388kb
input:
50 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
output:
1125899906842623
result:
ok single line: '1125899906842623'