K倍动态减法游戏
2013-12-02 21:05
295 查看
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2580
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3599
#include <iostream> #include <string.h> #include <stdio.h> using namespace std; const int N = 2000005; int a ,b ; int main() { int T,tt=1; int n,k; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&k); a[0] = b[0] = 1; int i = 0; int j = 0; 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] = a[i] + b[j]; else b[i] = a[i]; } printf("Case %d: ",tt++); if(a[i] == n) puts("lose"); else { int ans = 0; while(n) { if(n >= a[i]) { n -= a[i]; ans = a[i]; } i--; } printf("%d\n",ans); } } return 0; }
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3599
#include <iostream> #include <string.h> #include <stdio.h> using namespace std; typedef long long LL; const LL N = 3000005; LL a ,b ; int main() { LL T; LL n,k; scanf("%lld",&T); while(T--) { scanf("%lld%lld",&k,&n); a[0] = b[0] = 1; LL i = 0; LL j = 0; 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] = a[i] + b[j]; else b[i] = a[i]; } LL ans = 0; if(a[i] == n) ans = n - i - 1; else ans = n - i; printf("%lld\n",ans); } return 0; }
相关文章推荐
- HDU A simple stone game [K倍动态减法游戏]
- hdu2486 hdu2580 poj3922 A simple stone game--K倍动态减法游戏 博弈
- ZOJ 3599 K倍动态减法游戏
- HDU - 2486 A simple stone game k倍动态减法游戏
- uva 1567 - A simple stone game(K倍动态减法游戏)
- zoj3599 Game----K倍动态减法游戏
- 斐波那契博弈-K倍动态减法游戏(Poj-3922 A simple stone game)
- uva 1567 - A simple stone game(K倍动态减法游戏)
- a simple stone game--k倍动态规划减法游戏
- K倍动态减法游戏
- K倍动态减法游戏 HDU 2486&&POJ 3922
- (k倍动态减法游戏)zoj 3599 hdu 2486
- HDU 2486 (HDU 2580, POJ 3922) A simple stone game K倍动态减法游戏
- HDOJ 题目2486 A simple stone game(K倍动态减法游戏,模板)
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二十七)战斗前夜之构建动态障碍物系统
- Unity3D实现动态加载游戏资源
- [BZOJ3924][ZJOI2015]幻想乡战略游戏(动态点分治)
- POJ 3922 A simple stone game(K倍减法游戏)
- 【ZJOI 2015 幻想乡战略游戏】【动态点分治】
- Unity3D实现动态加载游戏资源