您的位置:首页 > 其它

zoj 3599 Game 博弈论

2013-08-21 21:04 357 查看
K倍动态减法游戏!!!

链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4683

代码如下:

#include<iostream>
#include<cstdlib>
#include<stdio.h>
#define ll long long
using namespace std;
ll a[3000000],b[3000000];
int main()
{
int i,j,t,k;
ll n,ans;
scanf("%d",&t);
while(t--){
scanf("%d%lld",&k,&n);
i=j=0;
a[0]=b[0]=1;
while(a[i]<n){
i++;
a[i]=b[i-1]+1;
while(a[j+1]*k<a[i]) j++;
if(a[j]*k<a[i]) b[i]=b[j]+a[i];
else b[i]=a[i];
}
if(a[i]==n) ans=(ll)n-i-1;
else ans=(ll)n-i;
printf("%lld\n",ans);
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: