ZOJ2290_Game
题目意思是这样的,给定一个数N,第一个可以减去任意一个数(不能为N本身),然后接下来轮流减去一个数字,下一个人减去的数字必须大于0,且不大于2倍上一次被减去的数字。
把N减为0的人获胜。
看完题目后不会做,果断就上午找题解了。
原来如此啊。。。。 首先我们可以打个表(在30的范围以内),就可以发现必败态是N为斐波那契数。
也就是说如果给定的数字不是一个斐波那契额数,那么就是必胜的。
接下来的问题是如何找到一个第一次减小的最小的数字呢?
可以递归找,每次都找最近的,知道恰好等于一个斐波那契数为止。
#include <iostream>
#include <cstdio>
#include <cstring>
#define inf (unsigned)(~0U)
using namespace std; unsigned a[],n,ans; unsigned count(unsigned x)
{
int k=;
for (; a[k+]<=x && k<=; k++);
if (a[k]==x) return x;
else return count(x-a[k]);
} int main()
{
a[]=;a[]=;a[]=;
for (unsigned k=; inf-a[k]>=a[k-]; k++) a[k+]=a[k]+a[k-];
while (cin>>n)
{
for (ans=; a[ans+]<=n && ans<=; ans++);
if (n==a[ans]) cout<<"lose\n";
else cout<<count(n-a[ans])<<endl;
}
return ;
}
ZOJ2290_Game的更多相关文章
随机推荐
- Object重写equals()、hashcode()方法的原因
一.问题 在我们新建java对象的时候,如果后期用到对象比较,就必须重写equals(0.hashcode()方法 为什么必须重写这两个方法? 只是比较相等的话,重写equals()方法不就可以吗?为 ...
- Luogu1801_黑匣子_KEY
题目传送门 借这道题练一下Treap和Splay的板子. code: #include <cstdio> #include <cstdlib> using namespace ...
- 【CF527C】Glass Carving
[CF527C]Glass Carving 题面 洛谷 题解 因为横着切与纵切无关 所以开\(set\)维护横着的最大值和纵着的最大值即可 #include <iostream> #inc ...
- TCP三次握手和四次挥手以及11种状态
1.三次握手 置位概念:根据TCP的包头字段,存在3个重要的标识ACK.SYN.FIN ACK:表示验证字段 SYN:位数置1,表示建立TCP连接 FIN:位数置1,表示断开TCP连接 三次握手过程说 ...
- jQuery Validate (登录页面相关验证)
$(function() { var submit = false; var superHtml = []; /** * 匹配企业帐号,以字母开头,长度在6-20之间,只能包含字符.数字和下划线. * ...
- Shell if 判断语句参数
[ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真. [ ...
- Python单元测试--unittest(一)
unittest模块是Python中自带的一个单元测试模块,我们可以用来做代码级的单元测试. 在unittest模块中,我们主要用到的有四个子模块,他们分别是: 1)TestCase:用来写编写逐条的 ...
- Java EE JSP编程基础
一.JSP编程介绍 JSP是实现普通静态HTML和动态HTML混合编码的技术,可以说是Servlet的一种变形,相比Servlet它更像普通的Web页面.JSP在第一次运行时会花费很长时间,原因在与其 ...
- centos7.2部署docker-17.06.0-ce的bug:Error response from daemon: oci runtime error: container_linux.go:262: starting container process caused "process_linux.go:339: container init caused \"\"".
现象: 操作系统:centos 7.2 kernel 3.10.0-327.el7.x86_64 mesos:1.3.0 docker:docker-17.06.0-ce 在做mesos验证时,通过m ...
- AWS/阿里/Azure,云厂商价格大PK
以下选取热门型号Linux虚拟机,AWS和Azure的虚拟机配置包括本地SSD临时盘,阿里云虚拟机不带本地SSD临时盘,而且需要另配网卡带宽.以下价格为人民币含税(6%) 按使用量网站直接付费购买(O ...