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的更多相关文章
随机推荐
- 20145226夏艺华 《Java程序设计》预备作业3
安装虚拟机 上学期开学的时候就安装了Linux虚拟机,由于我的是Mac OS,所以和windows下的安装有所不同. 我使用的是VirtualBoxVM虚拟机,稳定性还不错,需要的同学可以从https ...
- Java——基于java自身包实现消息系统间的通信(TCP/IP+NIO)
/** * Created by LiuHuiChao on 2016/11/15. * description:based on TCP/IP+NIO to deliver the message ...
- 解读python手册的例子a, b = b, a+b
Python手册上有个例子,用于输出10以内的斐波那契序列.代码如下: a, b = 0, 1 while b < 10: print(b) a, b = b, a+b 用到了一些Python的 ...
- Spring Cloud搭建微服务架构----文章汇总
Spring Cloud搭建微服务架构----前言 原文地址:https://my.oschina.net/u/1000241/blog/882929 Spring Cloud搭建微服务架构----使 ...
- mysql数据库 root密码重置
问题 忘记了MySQL的密码,网上搜索的杂七杂八,汇总一下. mysql版本是windows的mysql 5.7 步骤 1.以管理员身份打开cmd,切换到MySQL的bin目录 默认的话,一般是在C: ...
- Qt 利用XML文档,写一个程序集合 三
接上一篇https://www.cnblogs.com/DreamDog/p/9214052.html 滚动区域实现, 滚动区域可以三成分层 第一层,显示内容 中间层,滚动层 第三层,爸爸层 把我们要 ...
- Phaser3让超级玛丽实现轻跳、高跳及加上对应的跳跃声音
mario jumper 在线测试地址:http://www.ifiero.com/uploads/phaserjs3/jumper/ 空格键:轻按:跳低 ,长按:跳高键盘:--> 向右 , ...
- Laya 自适应 不拉伸处理
Laya.init(640, Laya.Browser.width / 640 * 1028, WebGL); Laya.stage.scaleMode = "fixedwidth" ...
- 图 -数据结构(C语言实现)
读数据结构与算法分析 坑!待填! 若干定义 一个图G = (V , E)由顶点集V和边集E组成,每条边就是一个点对 如果点对是有序的,那么就叫做有向图 边可能还具有第三种成分,权值 无向图种从每个顶点 ...
- PHP学习和使用总结
起因 学习和使用PHP也有不少年头了,而自己也在学习和使用其他许多语言.我想通过这个总结来给自己一个交代.另一方面也分享一下开发经验,如何用PHP开发和管理大型的项目. 闲聊 许多人说自己1天学会PH ...