您的位置:首页 > 其它

Codeforces Round #370 (Div. 2) C. Memory and De-Evolution【dfs+想法】

2016-09-12 16:10 417 查看
刚开始想从(x,x,x)进过一些方法得到(y,y,y),但是想了好多方法都不行。后来发现反过来想比较简单从(y,y,y)开始,按照三角形的要求得到下一个为(2*y-1,y,y),然后一直这样做下去。最后当三角形边最小的长度大于x时,就可以结束了。

#include<bits/stdc++.h>
using namespace std;
int x,y,ans1,ans;
void dfs(int a,int b,int c)
{
//printf("%d %d %d %d\n",ans,a,b,c);
if(c>=x) return ;
c=b+a-1;
if(a<c) swap(a,c);
if(a<b) swap(a,b);
if(b<c) swap(b,c);
ans++;
dfs(a,b,c);
}
int main()
{
//freopen("in.txt","r",stdin);
scanf("%d%d",&x,&y);
ans=0;
dfs(y,y,y);
printf("%d\n",ans);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐