bzoj 1962 模型王子 【猜数问题】

Brief description :

猜数问题:有一个被猜数X,,是1到N的范围内的整数,你每次可以给出一个整数Y。你会在你问下一个问题之后得到你这个问题的回答,即X与Y的大小关系。并且如果你得到了K次X<Y的回答,游戏就结束,你要避免这种情况的发生。

Analyse:

f[i][j],表示i次猜数,j次X<Y的情况的处理长度。

友链:猜数问题研究论文

CODE:

#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<vector>#include<string>#include<queue>#include<deque>#include<stack>#include<map>#include<set>#define INF 0x7fffffff#define SUP 0x80000000#define mem(a,b) memset(a,b,sizeof(a))using namespace std;typedef long long LL;const int N=100007;int dp[N][111];int main(){int n,k;while(scanf("%d%d",&n,&k)==2){int ans=0;for(int i=2;;i++){for(int j=2;j<=k;j++){dp[i][j]=max(dp[i-2][j]+dp[i-1][j-1],dp[i-1][j]+dp[i-2][j-2])+1;if(dp[i][j]>=n){ans=i;break;}}if(ans) break;}printf("%d\n",ans);}return 0;}

成功是什么?就是走过了所有通向失败的路.只剩下一条路.那就是成功的路.

bzoj 1962 模型王子 【猜数问题】

相关文章:

你感兴趣的文章:

标签云: