QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#423028#8347. 毒假强Diu100 ✓98ms4600kbC++141.2kb2024-05-27 20:51:512024-05-27 20:51:51

Judging History

你现在查看的是最新测评结果

  • [2024-05-27 20:51:51]
  • 评测
  • 测评结果:100
  • 用时:98ms
  • 内存:4600kb
  • [2024-05-27 20:51:51]
  • 提交

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);
}

Details

Tip: Click on the bar to expand more detailed information

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'