HDU2486_A simple stone game
这个题目是这样的,一堆石子有n个,首先第一个人开始可以去1-(n-1)个,接下来两人轮流取石子,每个人可取的石子数必须是一个不超过上一次被取的石子的K倍的整数。
现在求对于一堆数量为n的石子是否为必胜态,如果是的话,先手者第一次最少可以取多少石子?
这个题目是一个典型的K倍动态减法游戏。构造两个数列,然后直接判断就好了。
至于数列的构造原理,我自己弄得也不是很透彻,等我透彻了再写写吧。
对于输出最小的可行解,就是逐步减小并且判断就好了。
#include <iostream>
#include <cstdio>
#define maxn 5000000
using namespace std; int a[maxn],b[maxn],k,n,i,j,ans; int main()
{
int t,cas=;
scanf("%d",&t);
while (t--)
{
scanf("%d%d",&n,&k);
a[]=b[]=;
i=j=;
for (; a[i]<n; i++)//构造序列
{
a[i+]=b[i]+;
while (a[j+]*k<a[i+]) j++;
if (a[j]*k<a[i+]) b[i+]=b[j]+a[i+];
else b[i+]=a[i+];
}
printf("Case %d: ",++cas);
if (n==a[i]) printf("lose\n");
else
{
for (; n; i--)
if (n>=a[i]) n-=a[i],ans=a[i];
printf("%d\n",ans);
}
}
return ;
}
HDU2486_A simple stone game的更多相关文章
- HDUOJ--------A simple stone game(尼姆博弈扩展)(2008北京现场赛A题)
A simple stone game ...
- POJ 3922 A simple stone game
题目: E - A simple stone game Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d &am ...
- HDU6237-A Simple Stone Game-找素因子(欧拉函数)-2017中国大学生程序设计竞赛-哈尔滨站-重现赛
A Simple Stone Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- 2017中国大学生程序设计竞赛-哈尔滨站 H - A Simple Stone Game
A Simple Stone Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- HDU 6237.A Simple Stone Game-欧拉函数找素因子 (2017中国大学生程序设计竞赛-哈尔滨站-重现赛)
A Simple Stone Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- uva 1567 - A simple stone game(K倍动态减法游戏)
option=com_onlinejudge&Itemid=8&page=show_problem&problem=4342">题目链接:uva 1567 - ...
- Something about 博弈(POJ 3922 A simple stone game)
先是题目,本来是第三次训练的题,在这特别提出来讲. 先是题目: E - A simple stone game Time Limit:1000MS Memory Limit:65536KB ...
- POJ 3922A Simple Stone Game
题目链接 A Sample Stone Game 题目大意:给定n,k,表示最初时有n个石头,两个人玩取石子游戏,第一个人第一次可以取1~n-1个石头,后面每个人最多可以拿走前面一个人拿走的个数的K倍 ...
- 【hdu 2486】A simple stone game
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s) ...
随机推荐
- 20155323 2016-2017-2 《Java程序设计》第2周学习总结
20155323 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 对象:对象是类的一个实例,有状态和行为. 类:类是一个模板,它描述一类对象的行为和状态. 第 ...
- 20155331 丹增旦达 2006-2007-2 《Java程序设计》第二周学习总结
20155331 丹增旦达 2006-2007-2 <Java程序设计>第二周学习总结 教材学习内容总结 一 ,类型.变量与运算符 一.数据类型 1, 分类: 基本数据类型 byte:字节 ...
- jquery.validate使用 - 3
自定义jquery-validate的验证行为 1: 自定义表单提交 设置submitHandler来自定义表单提交动作 $(".selector").validate({ ...
- Phaser3 屏幕适配iPhoneX、iPhoneXs的坑 -- JavaScript Html5 游戏开发
PhaserJS 坑:在config内不要把 width 设为 window.innnerWidth在config内不要把 width 设为 window.innnerWidth在config内不 ...
- 利用Pillow给图片添加重点框(适用UI自动化测试)
效果图 一个简单的例子 安装Pillow 在cmd窗口/终端输入: pip install pillow 如果被墙,下载巨慢的话,可以临时替换豆瓣源 pip install pillow -i htt ...
- 内网集群准同步shell脚本
在公司的内网中配置集群同步,可能是代理问题,ntpd和chrony都没有用,所以只好写shell脚本解决 前提条件集群中各台机器已经配置好了免密登录 一.免密登录配置 1. 用 root 用户登录.每 ...
- Dev C++支持ISOC++11标准
报错如下: [Error] #error This file requires compiler and library support for the ISO C++ 2011 standard. ...
- kaldi DNN在线解码 aishell为例
在kaldi 的工具集里有好几个程序可以用于在线识别.这些程序都位在src/onlinebin文件夹里,他们是由src/online文件夹里的文件编译而成(你现在可以用make ext 命令进行编译) ...
- Python20-Day02
1.数据 数据为什么要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同类型的数据表示: 数据类型 数字(整形,长整形,浮点型,复数),字符串,列表,元组,字典,集合 2.字符串 1.按索引取 ...
- 4. 基本socket函数
一.创建socket /* 创建一个socket */ int socket(int family, int type, int protocol); /* 参数说明 */ // domain:使用哪 ...