QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#423028 | #8347. 毒假强 | Diu | 100 ✓ | 98ms | 4600kb | C++14 | 1.2kb | 2024-05-27 20:51:51 | 2024-05-27 20:51:51 |
Judging History
answer
#include<bits/stdc++.h>
#define ll long long
#define ii __int128
using namespace std;
const int N=100,L=40;
int a[N],k;
int sum[N];
ll n,M,f[N][N];
ii g[N][N<<2];
ii find(int n,ii s){
memset(g,0,sizeof(g));
g[0][0]=1;
ll mx=0;
for(int i=0;i<k;i++,s/=10){//从低位到高位dp
for(int j=i;j<=n;j+=k){
if(a[j]>=0){
s-=a[j];
if(s<0)return (ii)0;
}else{
for(int t=(mx+=8);t>=0;t--)
for(int p=1;p<=8&&p<=t;p++)g[i][t]+=g[i][t-p];
}
}
ll nmx=0;
for(int t=s%10;t<=mx;t+=10)g[i+1][t/10]=g[i][t],nmx=t/10;
mx=nmx;
}
return g[k][s];
}
ii calc(int x){//求出 x 位乱填 0-8 有多少方案
ii sum=0;
for(int l=1;l<=L;l++)//枚举每一段的和
sum+=find(x,(ii)M*l);
return sum;
}
void write(ii x){
if(x>=10)write(x/10);
putchar(x%10+'0');
}
signed main(){
scanf("%d%lld",&k,&n);
M=1;for(int i=1;i<=k;i++)M*=10;--M;
int H=0;//求最高位
for(int i=0;i<=L;i++){
for(int j=0;j<i;j++)a[j]=-1;
a[i]=0;
if(calc(i)>=n){H=i-1;break;}
}
for(int i=H;i>=0;i--){
for(int j=0;j<=8;j++){
a[i]=j;
ii sum=calc(H);
if(sum<n)n-=sum;
else break;
}
}
ii ans=0;
for(int i=H;i>=0;i--)ans=ans*10+a[i];
write(ans/M);
}
详细
Subtask #1:
score: 25
Accepted
Test #1:
score: 25
Accepted
time: 13ms
memory: 4288kb
input:
2 653
output:
1069
result:
ok single line: '1069'
Test #2:
score: 0
Accepted
time: 9ms
memory: 4360kb
input:
2 729
output:
1168
result:
ok single line: '1168'
Test #3:
score: 0
Accepted
time: 12ms
memory: 4292kb
input:
2 378
output:
569
result:
ok single line: '569'
Test #4:
score: 0
Accepted
time: 17ms
memory: 4308kb
input:
3 673
output:
1329
result:
ok single line: '1329'
Test #5:
score: 0
Accepted
time: 13ms
memory: 4292kb
input:
3 803
output:
1514
result:
ok single line: '1514'
Test #6:
score: 0
Accepted
time: 17ms
memory: 4308kb
input:
3 999
output:
1772
result:
ok single line: '1772'
Test #7:
score: 0
Accepted
time: 12ms
memory: 4364kb
input:
1 754
output:
1142
result:
ok single line: '1142'
Test #8:
score: 0
Accepted
time: 17ms
memory: 4288kb
input:
3 673
output:
1329
result:
ok single line: '1329'
Test #9:
score: 0
Accepted
time: 17ms
memory: 4288kb
input:
3 728
output:
1390
result:
ok single line: '1390'
Test #10:
score: 0
Accepted
time: 17ms
memory: 4580kb
input:
3 644
output:
1277
result:
ok single line: '1277'
Test #11:
score: 0
Accepted
time: 16ms
memory: 4600kb
input:
3 403
output:
734
result:
ok single line: '734'
Test #12:
score: 0
Accepted
time: 12ms
memory: 4552kb
input:
2 196
output:
286
result:
ok single line: '286'
Test #13:
score: 0
Accepted
time: 7ms
memory: 4288kb
input:
1 73
output:
90
result:
ok single line: '90'
Test #14:
score: 0
Accepted
time: 13ms
memory: 4356kb
input:
2 661
output:
1079
result:
ok single line: '1079'
Test #15:
score: 0
Accepted
time: 8ms
memory: 4236kb
input:
1 648
output:
889
result:
ok single line: '889'
Subtask #2:
score: 35
Accepted
Test #16:
score: 35
Accepted
time: 59ms
memory: 4232kb
input:
1 345034715579071096
output:
2513029422339367072
result:
ok single line: '2513029422339367072'
Test #17:
score: 0
Accepted
time: 69ms
memory: 4228kb
input:
1 928064447724082316
output:
6841649390539291284
result:
ok single line: '6841649390539291284'
Test #18:
score: 0
Accepted
time: 59ms
memory: 4356kb
input:
1 541392330132197148
output:
3934945708734153715
result:
ok single line: '3934945708734153715'
Test #19:
score: 0
Accepted
time: 59ms
memory: 4228kb
input:
1 932096632324717020
output:
6866796948572468426
result:
ok single line: '6866796948572468426'
Test #20:
score: 0
Accepted
time: 76ms
memory: 4308kb
input:
1 114451898294099023
output:
751984975176342275
result:
ok single line: '751984975176342275'
Test #21:
score: 0
Accepted
time: 54ms
memory: 4596kb
input:
1 235498410350575794
output:
1678575115834518445
result:
ok single line: '1678575115834518445'
Test #22:
score: 0
Accepted
time: 66ms
memory: 4364kb
input:
1 263087596959546780
output:
1854129753611416834
result:
ok single line: '1854129753611416834'
Test #23:
score: 0
Accepted
time: 68ms
memory: 4328kb
input:
1 576677905677423798
output:
4168653345619750896
result:
ok single line: '4168653345619750896'
Test #24:
score: 0
Accepted
time: 55ms
memory: 4364kb
input:
1 715338160945566811
output:
5200349120580131175
result:
ok single line: '5200349120580131175'
Test #25:
score: 0
Accepted
time: 65ms
memory: 4288kb
input:
1 732471942288061103
output:
5313900915618634928
result:
ok single line: '5313900915618634928'
Test #26:
score: 0
Accepted
time: 41ms
memory: 4232kb
input:
1 81591921669173834
output:
533613350411224447
result:
ok single line: '533613350411224447'
Test #27:
score: 0
Accepted
time: 64ms
memory: 4576kb
input:
1 444041620832982561
output:
3172902012381803952
result:
ok single line: '3172902012381803952'
Test #28:
score: 0
Accepted
time: 60ms
memory: 4308kb
input:
1 6697181292380282
output:
39407408296042592
result:
ok single line: '39407408296042592'
Test #29:
score: 0
Accepted
time: 61ms
memory: 4304kb
input:
1 952035664236484391
output:
7007633864782456009
result:
ok single line: '7007633864782456009'
Test #30:
score: 0
Accepted
time: 62ms
memory: 4328kb
input:
1 119337166106580019
output:
792828609748126894
result:
ok single line: '792828609748126894'
Subtask #3:
score: 40
Accepted
Test #31:
score: 40
Accepted
time: 80ms
memory: 4308kb
input:
12 874620678069272691
output:
22463825142185819370
result:
ok single line: '22463825142185819370'
Test #32:
score: 0
Accepted
time: 98ms
memory: 4288kb
input:
16 802614516796786027
output:
35407415665622422294
result:
ok single line: '35407415665622422294'
Test #33:
score: 0
Accepted
time: 72ms
memory: 4292kb
input:
6 756647802834648987
output:
10438847716008292465
result:
ok single line: '10438847716008292465'
Test #34:
score: 0
Accepted
time: 56ms
memory: 4288kb
input:
3 226896403387130337
output:
2059211761939710776
result:
ok single line: '2059211761939710776'
Test #35:
score: 0
Accepted
time: 65ms
memory: 4292kb
input:
1 347488145421093192
output:
2527387074818969159
result:
ok single line: '2527387074818969159'
Test #36:
score: 0
Accepted
time: 84ms
memory: 4584kb
input:
14 193000621330864201
output:
6067357863414375200
result:
ok single line: '6067357863414375200'
Test #37:
score: 0
Accepted
time: 65ms
memory: 4360kb
input:
6 954115818600650251
output:
12864634150158375562
result:
ok single line: '12864634150158375562'
Test #38:
score: 0
Accepted
time: 98ms
memory: 4216kb
input:
17 743225133605738266
output:
37311263433846176756
result:
ok single line: '37311263433846176756'
Test #39:
score: 0
Accepted
time: 65ms
memory: 4360kb
input:
9 252020961388627232
output:
4250078145252196572
result:
ok single line: '4250078145252196572'
Test #40:
score: 0
Accepted
time: 84ms
memory: 4320kb
input:
12 625490241962472026
output:
15466218565422592895
result:
ok single line: '15466218565422592895'
Test #41:
score: 0
Accepted
time: 98ms
memory: 4552kb
input:
17 954452527346520859
output:
48142667151713611623
result:
ok single line: '48142667151713611623'
Test #42:
score: 0
Accepted
time: 61ms
memory: 4580kb
input:
3 976431687783080972
output:
8829664277323469345
result:
ok single line: '8829664277323469345'
Test #43:
score: 0
Accepted
time: 74ms
memory: 4360kb
input:
1 847601466910992894
output:
6192959617472541715
result:
ok single line: '6192959617472541715'
Test #44:
score: 0
Accepted
time: 64ms
memory: 4308kb
input:
4 151280662907406040
output:
1473815899034367653
result:
ok single line: '1473815899034367653'
Test #45:
score: 0
Accepted
time: 54ms
memory: 4288kb
input:
2 888548487913703829
output:
7283410115572769456
result:
ok single line: '7283410115572769456'