QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#799217 | #6214. 无界单词 | Grain_Depot08 | 100 ✓ | 1ms | 3976kb | C++14 | 1.0kb | 2024-12-05 07:14:07 | 2024-12-05 07:14:08 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define N 65
typedef unsigned long long ull;
ull t,n,k,f[N],g[N],nxt[N];
char s[N];
void kmp(int p){
if(p==1)return;
int j=nxt[p-1];
while(j&&s[j+1]!=s[p])j=nxt[j];
if(s[j+1]==s[p])++j;
nxt[p]=j;
}
ull calc(int p){
ull w;
for(int i=1;i<=n;++i){
if(i<=p){
g[i]=nxt[i]?0:1;
}else{
g[i]=1ull<<i-p;
for(int j=1;j<=i/2;++j){
if(i-j+1<=p){
w=1;
for(int k=i-j+1,l=1;k<=p;++k,++l)
if(s[k]!=s[l]){w=0;break;}
g[i]-=w*g[j];
}else if(j<=p){
g[i]-=(1ull<<i-p-j)*g[j];
}else{
g[i]-=(1ull<<i-j*2)*g[j];
}
}
}
}
return g[n];
}
int main(){
ull w;
scanf("%llu",&t);
f[0]=1;
for(int i=1;i<=64;++i){
if(i&1)f[i]=f[i-1]*2;
else f[i]=f[i-1]*2-f[i/2];
}
while(t--){
scanf("%llu%llu",&n,&k);
for(int i=1;i<=n;++i){
s[i]='a';
kmp(i);
w=calc(i);
if(k>w){
s[i]='b';
kmp(i);
k-=w;
}
}
s[n+1]='\0';
printf("%llu\n%s\n",f[n],s+1);
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Pretests
Final Tests
Test #1:
score: 10
Accepted
time: 0ms
memory: 3832kb
input:
5 10 207 10 119 9 131 10 160 10 94
output:
284 bbabaabaaa 284 ababaababb 148 bbbabbaba 284 babaabbbaa 284 aabbbabbab
result:
ok 10 lines
Test #2:
score: 10
Accepted
time: 0ms
memory: 3964kb
input:
5 20 204400 18 29002 18 37602 19 124074 19 16406
output:
281076 bbabaababbabababaaba 70340 ababaaaabbbbbbabbb 70340 baabbbabbbbaaabaaa 140680 bbbabbbababaabaabba 140680 aaabaaabaabaaaabbab
result:
ok 10 lines
Test #3:
score: 10
Accepted
time: 0ms
memory: 3844kb
input:
5 24 1756170 24 2954809 22 1028107 22 731494 22 632867
output:
4493828 abaababababbbaababaaabbb 4493828 bbaaaababaabbabababababa 1123736 bbbbaabbbabbbbbbaaabba 1123736 bbaaaaaabbabbaabbaaaba 1123736 bababaaaaababbaabbaaaa
result:
ok 10 lines
Test #4:
score: 10
Accepted
time: 0ms
memory: 3908kb
input:
5 27 34554458 26 7853662 28 34685327 27 5811209 26 7970283
output:
35946160 bbbbbababaabaabbbababbbaaba 17973080 abababbbbbabbbbaaabbbbbabb 71887896 abbababbbaaabaaaabbababbbbbb 35946160 aaabbaaaabbbbbbabbabaabbbbb 17973080 ababbaabbbbaabbaaaababbbbb
result:
ok 10 lines
Test #5:
score: 10
Accepted
time: 0ms
memory: 3848kb
input:
5 31 347955619 30 64115137 30 244757467 32 630000809 32 1026272586
output:
575085472 babbabaaaaabbbbaaabbaabaabbaaaa 287542736 aabaaabbabbababbbabbabaaababab 287542736 bbbabaabbababaabbababbbaaababa 1150153322 babaaabbabaaabaaaabbbaababbbbbaa 1150153322 bbbbaaaaabaaabaaabaaaabbbbabbaaa
result:
ok 10 lines
Test #6:
score: 10
Accepted
time: 1ms
memory: 3968kb
input:
5 56 11418652155951284 57 35048628878793291 56 10547885091516138 56 14334231976623064 56 6626671462199870
output:
19296075493006760 babbaaaaaabaabaabbbbaabbababbabbaabbaaaabaaabbbbbabbbaaa 38592150986013520 bbbbaabababbbaabaababbbaaaababbbabaababaaababaababbbabaaa 19296075493006760 babaaababbbaaabbaaaaababbbbaaaaabbaaabbaaabbaaabababbbaa 19296075493006760 bbababbaaaababaabaaaababaaaabababaaaabaaaaababbbaabababa...
result:
ok 10 lines
Test #7:
score: 10
Accepted
time: 1ms
memory: 3848kb
input:
5 63 2464980184316343454 63 990137394745283831 61 87621639090453995 62 579608892494436922 62 840155758238615836
output:
2469897655053527104 bbbbbbbbbabbbabaaaaababbaabbbabababaababaababaababababbbbbbabba 2469897655053527104 abaabbabbaabbbabbbabbabaaabaaaaaaaaaabbbbaaabbaaababbbaabbbbbbb 617474414050924512 aaabababaabbaababbabbbbaaaabbbbbabaababaaaaabbbbbbbabbaabbaab 1234948827526763552 abbaabaaabaaabaaabaaabbabaaaaab...
result:
ok 10 lines
Test #8:
score: 10
Accepted
time: 1ms
memory: 3900kb
input:
5 63 560160613792005859 63 1571998298795922483 62 1104343094220952078 62 45077520445927852 62 276453343206805242
output:
2469897655053527104 aabaabaaaabaaaabaaaabbbbaabbabaabbbbaabbababbbabaabaababbbbabab 2469897655053527104 babbbbaabbabbbbbabbaababbbabbbbaaabbbbbababbabbbbabaabbabbabaaa 1234948827526763552 bbbbaaaabaabaabaaabbaaabbbaaaaabbbbaaabbabbbabbabbbaaababbaaaa 1234948827526763552 aaaaababaaabbabbaabbbbbaaabbb...
result:
ok 10 lines
Test #9:
score: 10
Accepted
time: 1ms
memory: 3924kb
input:
5 62 487743272421550773 63 1106478100175603425 62 515718557008469245 64 2171702614481334094 63 678044720533572037
output:
1234948827526763552 abaababbbbbaaaabbbabababbbbbbbabbaaabbbaaabbbabbaaabbaabbbabbb 2469897655053527104 ababbabbababaabbbabaaabbaabababbbabbaaaaabbbbabbaaaaabbaaaaaabb 1234948827526763552 ababaabaabbbaabbaaaaaaaaabbabaaaababbbaabbbabbbbaaaabaabaaaabb 4939795308956900886 ababbaaababbaaabbbabaaabaabbbb...
result:
ok 10 lines
Test #10:
score: 10
Accepted
time: 0ms
memory: 3976kb
input:
5 62 636652242833777812 62 835043011717080893 64 2611442093333570988 63 991429299066879745 64 1989144564346741540
output:
1234948827526763552 baabaabbababbbbbaabaaaabaabaababbababaaababababbbbaaabbabbbaaa 1234948827526763552 bbaaabbbababaaababbabbbbbaabbbabaabbbbbaababbbbababbabaaabaaba 4939795308956900886 baabbabababaaaabbaabbaaaabbbbaaaabaabbabbaabababbaaaaabbbbaabaaa 2469897655053527104 abaabbabbbaaabababbaababbaabb...
result:
ok 10 lines