QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#804031#9868. GCDucup-team5697#WA 43ms198780kbC++201.7kb2024-12-07 19:56:452024-12-07 19:56:48

Judging History

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

  • [2024-12-07 19:56:48]
  • 评测
  • 测评结果:WA
  • 用时:43ms
  • 内存:198780kb
  • [2024-12-07 19:56:45]
  • 提交

answer

#pragma GCC optimize(2)
#pragma GCC optimize("Ofast")
#include<map>
#include<set>
#include<cmath>
#include<ctime>
#include<queue>
#include<stack>
#include<cstdio>
#include<vector>
#include<string>
#include<bitset>
#include<numeric>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
const int MAXN=5e3+10;
const int N=5e3;
const int INF=0x3f3f3f3f;
const long long LINF=0x3f3f3f3f3f3f3f3f;
int n;
long long m,ans;
int g[MAXN][MAXN],lst[MAXN][MAXN];
#define swap(x,y) x^=y^=x^=y
inline int gcd(int a,long long b){
	if(a>b){
		swap(a,b);
	}
	if(!a){
		return b;
	}
	if(b%a==0){
		return a;
	}
	b%=a;
	if(a>b){
		swap(a,b);
	}
	return g[a][b];
}
inline void init(){
	for(int i=1;i<=N;i++)
	{
		g[i][i]=i;
		for(int j=i+1;j<=N;j++)
		{
			int k=j-i;
			g[i][j]=i<=k?g[i][k]:g[k][i];
		}
	}
	for(int i=1;i<=N;i++)
	{
		lst[i][0]=0;
		for(int j=1;j<i;j++)
		{
			if(g[j][i]>1){
				lst[i][j]=j;
			}
			else{
				lst[i][j]=lst[i][j-1];
			}
		}
	}
}
void dfs(int a,long long b,long long now){
	if(!a){
		ans=min(ans,now+1);
		return ;
	}
	if(b%a==0){
		ans=min(ans,now+2);
		return ;
	}
	if(b/a+now>ans){
		return ;
	}
	int cur=__gcd(0ll+a,b);
	int c=a/cur,d=b/cur%c;
	dfs(a,b-cur,now+1);
	dfs(a-cur,b,now+1);
}
inline void solve(){
	scanf("%d%lld",&n,&m);
	if(n>m){
		swap(n,m);
	}
	ans=LINF;
	dfs(n,m,0);
	printf("%lld\n",ans);
}
signed main(){
	#ifdef LOCAL
	freopen("data.in","r",stdin);
	freopen("data.out","w",stdout);
	atexit([](){fprintf(stderr,"%.3lfs\n",(double)clock()/CLOCKS_PER_SEC);});
	#endif
	init();
	int t;
	scanf("%d",&t);
	while(t--)
	{
		solve();
	}
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 28ms
memory: 198780kb

input:

3
3 4
12 20
114 514

output:

3
4
6

result:

ok 3 lines

Test #2:

score: -100
Wrong Answer
time: 43ms
memory: 198724kb

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 259th lines differ - expected: '4', found: '5'