HDU 2486 A simple stone game (K 倍动态减法博弈游戏,还未理解)

来源:互联网 发布:linux 设置启动级别 编辑:程序博客网 时间:2024/05/04 09:34
大神博客:http://www.cnblogs.com/jianglangcaijin/archive/2012/12/19/2825539.html
#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int a[2100000];int b[2100000];int main(){int t;cin >> t;int icase = 1;while (t--){int n, m;scanf("%d%d", &n, &m);a[0] = b[0] = 1;int i = 0;int j = 0;while (a[i] < n){a[i + 1] = b[i] + 1;while (a[j+1] * m < a[i + 1])j++;if (a[j] * m < a[i + 1])b[i + 1] = b[j] + a[i + 1];elseb[i+1] = a[i+1];i++;}printf("Case %d: ", icase++);if (n == a[i])puts("lose");else{int ans = 0;while (n){if (n >= a[i])n -= a[i], ans = a[i];i--;}printf("%d\n", ans);}}}


0 0
原创粉丝点击