QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#804659#9868. GCDucup-team139#WA 12ms155988kbC++14966b2024-12-08 01:52:242024-12-08 01:52:25

Judging History

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

  • [2024-12-08 01:52:25]
  • 评测
  • 测评结果:WA
  • 用时:12ms
  • 内存:155988kb
  • [2024-12-08 01:52:24]
  • 提交

answer

#include <bits/stdc++.h>

#define int int64_t
using namespace std;

const int MN = 5004;
int dp[MN][MN];
const int inf = 1e18;

void solve() {
	int a,b;
	cin>>a>>b;
	int gg = __gcd(a,b);
	for(int i=0; i<MN; ++i) dp[i][0]=1;
	dp[0][0]=0;

	for(int g=a; g>=gg; --g) {
		for(int aog=1; g*aog<=a; ++aog) {
			int ca = aog*g;
			int cb = b-(b%g);
			dp[g][aog]=dp[g][aog-1]+1;
			for(int g2=g+g; g2<=ca; g2+=g) if(ca%g2==0) {
				/*for(int aog2=0; g2*aog2<=ca; ++aog2) {
					int a2 = g2*aog2;
					int d = (ca-a2)/g + (cb%g2)/g;
					dp[g][aog] = min(dp[g][aog], d+dp[g2][aog2]);
				}*/
				int aog2 = ca/g2;
				int d = (cb%g2)/g;
				dp[g][aog] = min(dp[g][aog], d+dp[g2][aog2]);
			}
			if(__gcd(ca,cb)!=g) dp[g][aog]=dp[__gcd(ca,cb)][ca/__gcd(ca,cb)];//inf;
			//cerr<<"dp["<<g<<"]["<<aog<<"]= "<<dp[g][aog]<<'\n';
		}
	}

	cout<<dp[gg][a/gg]<<'\n';
}

signed main() {
	cin.tie(0);
	ios_base::sync_with_stdio(0);
	int t;
	cin>>t;
	while(t--) solve();
	return 0;
}


详细

Test #1:

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

input:

3
3 4
12 20
114 514

output:

3
4
6

result:

ok 3 lines

Test #2:

score: -100
Wrong Answer
time: 12ms
memory: 143120kb

input:

990
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
1 14
1 15
1 16
1 17
1 18
1 19
1 20
1 21
1 22
1 23
1 24
1 25
1 26
1 27
1 28
1 29
1 30
1 31
1 32
1 33
1 34
1 35
1 36
1 37
1 38
1 39
1 40
1 41
1 42
1 43
1 44
1 45
1 46
1 47
1 48
1 49
1 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
1 60
2 3
2 4
2...

output:

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
2
3
4
2
3
3
2
3
4
2
3
3
2
3
4
2
3
3
2
3
4
2
3
3
2
3
4
2
3
3
2
3
4
2
...

result:

wrong answer 629th lines differ - expected: '6', found: '5'