码迷,mamicode.com
首页 > 编程语言 > 详细

算法复习——猜数问题

时间:2017-11-01 11:09:11      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:版权   turn   span   algo   code   cstring   str   har   getch   

技术分享

技术分享

  上面这道题的四个KC的分类范围的解题方法可以直接在龙凡的《一类猜数问题的研究》找到··为了版权问题我这里就不贴了···

  代码:

  

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<cctype>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
inline long long R(){
    char c;long long f=0;
    for(c=getchar();c<0||c>9;c=getchar());
    for(;c<=9&&c>=0;c=getchar())    f=f*10+c-0;
    return f;
}
int T;
long long n,k,c;
long long f1=0,f2[80000][105],f3[505],f4[70000][105];
int main()
{
    T=R();
    while(T--){
        n=R(),k=R(),c=R();
        if(n==k&&c==0){
            f1=0;int tim=0;
            while(f1<n){
                f1=2*f1+1;
                tim++;
            }
            cout<<tim<<"\n";
        }
        else if(c==0){
            bool flag=false;
            for(int i=1;;i++){
                if(flag)  break;            
                for(int j=1;j<=k;j++){
                    f2[i][j]=f2[i-1][j-1]+f2[i-1][j]+1;
                        if(f2[i][j]>=n){
                            cout<<i<<"\n";flag=true;
                            break;
                        }
                }
            }
        }    
        else if(n==k&&c!=0){
            for(int i=2;;i++){
                f3[i]=f3[i-1]+f3[i-2]+1;
                if(f3[i]>=n){
                    cout<<i<<"\n";
                    break;
                }
            }
        }
        else{
            bool flag=false;
            for(int i=2;;i++){
                if(flag)    break;
                for(int j=1;j<=k;j++){
                    if(j>1)f4[i][j]=max(f4[i-1][j-1]+f4[i-2][j],f4[i-2][j-2]+f4[i-1][j])+1;
                    else f4[i][j]=max(f4[i-1][j-1]+f4[i-2][j],f4[i-1][j])+1;
                    if(f4[i][j]>=n){
                        cout<<i<<endl;
                        flag=true;break;
                    }
                }
            }
        }
    }
    return 0;
}

 

算法复习——猜数问题

标签:版权   turn   span   algo   code   cstring   str   har   getch   

原文地址:http://www.cnblogs.com/AseanA/p/7765384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!