QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#619734#6694. Math ProblemhighkjWA 102ms4056kbC++112.0kb2024-10-07 15:12:402024-10-07 15:12:42

Judging History

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

  • [2024-10-07 15:12:42]
  • 评测
  • 测评结果:WA
  • 用时:102ms
  • 内存:4056kb
  • [2024-10-07 15:12:40]
  • 提交

answer

#include <bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#include <ext/rope>
using namespace __gnu_pbds;
using namespace std;
#define pb push_back
#define rep(i,x,y) for(register int i=x;i<=y;i++)
#define rep1(i,x,y) for(register int i=x;i>=y;--i)
#define int __int128
#define fire signed
#define il inline
template<class T> il void print(T x) {
	if(x<0) printf("-"),x=-x;
	if (x > 9) print(x / 10);
	putchar(x % 10 + '0');
}
const int bufsize = 230005;
char buf[bufsize], *f1, *f2;
#define getchar() (f1 == f2 && (f2 = buf + fread(f1 = buf, 1, bufsize, stdin)) == buf? EOF: *f1++)
template<class T> il void in(T &x) {
    x = 0; char ch = getchar();
    int f = 1;
    while (ch < '0' || ch > '9') {if(ch=='-') f = -1; ch = getchar(); }
    while (ch >= '0' && ch <= '9') { x = (x << 3) + (x << 1) + (ch ^ 48); ch = getchar(); }
    x *= f;
}
int T=1;
int n,k,m,a,b,res;
__int128 qmi(__int128 x,int y) {
	__int128 res=1;
	while(y) {
		if(y&1) res=res*x;
		x=x*x;
		y>>=1;
	}return res;
}
bool check(int c,int n,__int128 m) {
	__int128 now=(__int128)(qmi(k,c)*n); 
	m=(m+now-1)/m*m;
	m-=now;
	rep1(i,c-1,1) {
		now=qmi(k,i);
		m-=min(k-1,(int)(m/now))*now;
	}
	return (m<=k-1);
}
int cc(int k,int x,int r) {
	r/=x;
	int cnt=false;
	while(r) r/=k,cnt++;
	return cnt;
}
int gets(int x,int y) {
	int l=1,r=8,res=INT_MAX;
	rep(i,l,r) if(check(i,x,y)) res=min(res,i);
	return res*a;
}
void solve() {
	in(n),in(k),in(m),in(a),in(b);
	if(n%m==0) {
		cout<<"0\n";
		return;
	}else if(k==1) {
		puts("-1");
		return;
	}
	res=LONG_LONG_MAX;
	int now=0;
	while(n) {
		res=min(res,now+gets(n,m));
		n/=k;
		now+=b;
		if(n%m==0) res=min(res,now);
	}
	res=min(res,now);
	print(res);
	cout<<endl;
}
fire main() {
//	freopen("transform.in","r",stdin);
//	freopen("transform.out","w",stdout);
	in(T);
	while(T--) {
		solve();
	}
	return false;
}
/*
1
2157584874927409 3499113 70686381 77518537 690462406
*/

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3596kb

input:

4
101 4 207 3 5
8 3 16 100 1
114 514 19 19 810
1 1 3 1 1

output:

11
2
0
-1

result:

ok 4 number(s): "11 2 0 -1"

Test #2:

score: 0
Accepted
time: 60ms
memory: 3816kb

input:

100000
9 5 7 7674 78731
4 3 4 58482 93736
1 4 3 42396 22960
6 2 2 4534 73466
5 7 7 56203 19376
1 7 10 77129 84094
8 3 3 72793 89258
10 10 3 94847 42455
7 4 7 79273 90760
2 7 3 78496 99140
4 4 9 47018 14651
3 7 8 60936 4453
8 6 4 57267 6293
8 7 3 81697 99664
2 10 10 3935 30951
8 9 7 91391 70670
5 8 8...

output:

7674
0
22960
0
19376
77129
72793
84910
0
78496
29302
4453
0
81697
3935
70670
36522
21244
0
0
0
100934
30063
0
57852
31894
72016
6193
9486
2516
27536
0
7306
73625
11302
13802
41343
50014
58015
38743
65165
38963
26747
0
42044
45733
63574
69321
34196
1674
27200
8130
0
46609
53621
11696
7808
4630
10051
...

result:

ok 100000 numbers

Test #3:

score: 0
Accepted
time: 102ms
memory: 4056kb

input:

100000
72 56 61 725468539 908406897
78 7 86 485275009 977836982
25 57 29 104624183 334780226
48 74 44 805881518 26082346
87 26 31 224468594 59732782
55 29 99 697738785 876206855
96 85 8 998474252 490312988
11 22 7 298977007 759215221
43 72 22 785798936 836075792
16 16 29 304049814 445858780
86 24 36...

output:

725468539
970550018
104624183
26082346
119465564
1395477570
0
298977007
785798936
304049814
488620044
1112696878
150581202
929490259
258912618
156420265
767475208
623063452
158730933
211070701
576023224
525233
66950902
893398127
1538977472
552877592
365438928
274813702
347240596
413914126
411352478
...

result:

ok 100000 numbers

Test #4:

score: -100
Wrong Answer
time: 89ms
memory: 3796kb

input:

100000
151 859 413 113296245 501509373
721 797 951 199093180 857704079
864 743 424 944343390 211412511
537 561 510 160063507 371248812
67 101 1000 982073931 983924207
224 620 106 988167382 31695532
388 496 373 179680114 906477657
463 865 318 568083479 906936536
409 549 816 183391318 716459594
871 83...

output:

113296245
199093180
422825022
160063507
983924207
31695532
179680114
568083479
366782636
353991726
424999871
270298556
845830412
171200301
342928747
708513732
1071693358
495915588
91647563
423066800
629029877
532122044
903837970
923069546
30892184
342614734
344281675
92814148
8303547
371747405
58158...

result:

wrong answer 1607th numbers differ - expected: '378425178', found: '597370009'