Codeforces712C【贪心】

看了这篇。。
http://blog.csdn.net/queuelovestack/article/details/52503162
直接就是从小到大,那么每次按最大的递增顺序上去,就是了。
因为每次只能取那么大,符合三角形三边关系,也不会避免每次拿小了。

#include <bits/stdc++.h>
using namespace std;
typedef __int64 LL;
const int N=3;
int s[N];
int main()
{
    int x,y,i;
    scanf("%d%d",&x,&y);
    s[0]=s[1]=s[2]=y;
    for(i=0;s[0]<x||s[1]<x||s[2]<x;i++)
        s[i%3]=s[(i+1)%3]+s[(i+2)%3]-1;//这个取膜处理三个关系对于本萌新来说也真是妙啊;
    printf("%d\n",i);
    return 0;
}
posted @ 2016-09-14 09:24  see_you_later  阅读(112)  评论(0编辑  收藏  举报