[Codeforces]Fox Dividing Cheese

阅读: 评论:0

[Codeforces]Fox Dividing Cheese

[Codeforces]Fox Dividing Cheese

原题链接

狐狸和熊
听起来像寓言故事

就是先求出来a,b的最大公约数
然后看看吃几次能成最大公约数
感觉好像不太对
但是过了

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<queue>
#include<vector>
#include<climits>
#include<string>
#include<cstdlib>
#include<map>
#include<ctime>
#define MAX 1000000007
#define LL long long
using namespace std;int a,b,ac,bc,tot,c;int gcd(int x,int y)
{int r;if(y>x){r=x;x=y;y=r;}while(x%y){r=x%y;x=y;y=r;}   return y;
}int main()
{scanf("%d%d",&a,&b);if(a==b){printf("0");return 0;}c=gcd(a,b);ac=a/c;bc=b/c;if((ac%2)&&(ac%3)&&(ac%5)&&(ac!=1)){printf("-1");return 0;}if((bc%2)&&(bc%3)&&(bc%5)&&(bc!=1)){printf("-1");return 0;}   while(ac!=1){if(ac%2==0&&ac!=1){ac=ac/2;tot++;}if(ac%3==0&&ac!=1){ac=ac/3;tot++;}if(ac%5==0&&ac!=1){ac=ac/5;tot++;}   if((ac%2)&&(ac%3)&&(ac%5)&&(ac!=1)){printf("-1");return 0;}   }while(bc!=1){if(bc%2==0&&bc!=1){bc=bc/2;tot++;}if(bc%3==0&&bc!=1){bc=bc/3;tot++;}if(bc%5==0&&bc!=1){bc=bc/5;tot++;}   if((bc%2)&&(bc%3)&&(bc%5)&&(bc!=1)){printf("-1");return 0;}   }printf("%d",tot);return 0;
}

顺便还有一个bfs版

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<queue>
#include<vector>
#include<climits>
#include<string>
#include<cstdlib>
#include<ctime>
#define LL long long
using namespace std;struct nico
{int a,b,tot;
};int bfs(int ap,int bp)
{queue<nico>q;nico k;k.a=ap;k.b==0;q.push(k);while(!q.empty()){k=q.front();q.pop();if(k.a==k.b) ;if(k.a>k.b){if(k.a%2==0){nico t;t.a=k.a/2;t.b=k.&#+1;q.push(t);}if(k.a%3==0){nico t;t.a=k.a/3;t.b=k.&#+1;q.push(t);}if(k.a%5==0){nico t;t.a=k.a/5;t.b=k.&#+1;q.push(t);}   }if(k.a<k.b){if(k.b%2==0){nico t;t.a=k.a;t.b=k.b/&#+1;q.push(t);}if(k.b%3==0){nico t;t.a=k.a;t.b=k.b/&#+1;q.push(t);}if(k.b%5==0){nico t;t.a=k.a;t.b=k.b/&#+1;q.push(t);}   }}return -1;
}int main()
{int a,b,ans;scanf("%d%d",&a,&b);if(a==b){printf("0");return 0;}ans=bfs(a,b);printf("%d",ans);return 0;
}

本文发布于:2024-02-01 12:19:02,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170676114436544.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:Fox   Codeforces   Cheese   Dividing
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23