K倍动态减法游戏 HDU 2486&&POJ 3922

2015-07-24 05:42:53 · 作者: · 浏览: 7

题目链接:http://poj.org/problem?id=3922

http://acm.hdu.edu.cn/showproblem.php?pid=2486

这玩意好难,不理解,先记录一下。

雷神题解:http://www.cnblogs.com/jianglangcaijin/archive/2012/12/19/2825539.html

贴一份代码:

#include
  
   
#include
   
     using namespace std; int f[5000000]; int n,k; int work(int n){ int i,j; f[1]=1; f[2]=2; for(i=1,j=2;f[j]
    
     n) j--; while(f[j]!=n){ n-=f[j]; while(f[j]>n) j--; } return f[j]; } int main() { int i,t,cas; scanf("%d",&cas); for(i=1;i<=cas;i++){ scanf("%d%d",&n,&k); t=work(n); printf("Case %d: ",i); if(t==n) printf("lose\n"); else printf("%d\n",t); } return 0; }