轮流取石子游戏c语言答案,取石子游戏
取石子游戏
取石子游戏
描述
输入
输出
输入样例 1
输出样例 1
思路
取石子游戏I
描述
输入
输出
输入样例 1
输出样例 1
取石子游戏II
描述
输入
输出
输入样例 1
输出样例 1
思路
取石子游戏
描述
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。
输入
输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,000。
输出
输出对应也有若干行,每行包含一个数字1或0,如果最后你是胜者,则为1,反之,则为0。
输入样例 1
2 1
8 4
4 7
输出样例 1
0
1
0
思路
普通的威佐夫博弈题,公式有俩,如果符合公式就是奇异局势,面对奇异局势必输。
ak = (int)k * (1 + sqrt(5)/2)
bk = ak + k
然后代码就是套第一个公式,如果符合就输定了
#include
using namespace std;
int main()
{
int a,b,k,t;
while(cin>>a>>b)
{
int n = min(a,b);
int m = max(a,b);
k = m - n;
t = (k * (1 + sqrt(5))/2);
if(t == n)
{
cout<
}
else cout<
}
return 0;
}
取石子游戏I
描述
一堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。取完者胜.先取者负输出"Second win".先取者胜输出"First win".
输入
多组测试数据。
每组测试数据包含1个整数n。(1输出
对于每组测试数据,输出谁获胜.
输入样例 1
2
13
1000
输出样例 1
Second win
Second win
First win
#include
#include
int main()
{
int n,i;
double a[60];
a[0]=1;a[1]=1;
for(i=2;i<60;i++)
{
a[i]=a[i-1]+a[i-2];
}
while(~scanf("%d",&n))
{
int j=0;
for(i=0;i<60;i++)
{
if(n==a[i])
{
j++;
}
}
if(j>0)
{
printf("Second win\n");
}
else
{
printf("First win\n");
}
}
return 0;
}
取石子游戏II
描述
一堆石子有n个,两人轮流取.每次取最少取1个,最多取m个。取完者胜.先取者负输出"Second win".先取者胜输出"First win"
输入
多组测试数据。
每组测试数据包含2个正整数n,m。(n,m<=10000000)
输出
对于每组测试数据,输出谁获胜
输入样例 1
2 1
3 2
3 1
输出样例 1
Second win
Second win
First win
思路
基础的巴什博奕
巴什博奕的重点是只有一堆,
如果n % (m + 1) != 0 则先手赢,如果用普通的数组会TLE。
证明:如果n = m + 1,先手最多拿m个,肯定有剩下的,所以先手必输,所以碰到k(m + 1)的局面的人必输。那么如果n = k(m + 1) + s,这个k 就是系数,s < m + 1,那么只要先手拿掉s个,这样后手面对的就是k(m + 1)局面,所以先手在n % (m + 1) != 0时必输。
#include
#include
int main()
{
int m=0,n=0;
while(~scanf("%d %d",&n,&m))
{
if(n%(m+1)==0)
{
printf("Second win\n");
}
else
{
printf("First win\n");
}
}
return 0;
}
轮流取石子游戏c语言答案,取石子游戏相关推荐
- 取石头游戏 c语言,[HNOI2010]取石头游戏(博弈论+贪心)
题目描述: 有\\(n\\)堆石子,每堆石子的个数为\\(a_i\\),保证存在至少一堆石子个数为\\(0\\) 两个人,每个人每次可以取一堆石子,一堆石子可以被取当且仅当它相邻的石子有至少一堆为\\ ...
- python爬取国内代理ip_Python语言爬取代理IP
本文主要向大家介绍了Python语言爬取代理IP,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. #!/usr/bin/env python #-*-coding=utf-8 -* ...
- c语言实现五子棋游戏,C语言实现五子棋小游戏
C语言实现五子棋小游戏 # include # include # include # include//插入输入输出头文件 # include//字符数组的函数定义的头文件 # include//s ...
- 约瑟夫双向生死游戏c语言代码,约瑟夫生死游戏(含源代码可以运行)本科毕业设计.doc...
约瑟夫生死游戏(含源代码可以运行)本科毕业设计 湖南商学院 数据结构与算法 课程设计 题 目约瑟夫双向生死游戏学生姓名梁子嫣学 号140920043学 院计算机工程与信息学院专业班级计科1402指导教 ...
- c语言课程设计走迷宫游戏,C语言课程设计-迷宫游戏.doc
计算机技术基础课程设计 C语言 设计报告 题目:完整的二维迷宫游戏 学院:工商管理学院 专业:信息系统与信息管理 班级:050507 姓名:孙月 指导教师:张首伟 设计日期:2004年12月10日 题 ...
- c语言二十四点游戏,C语言解24点游戏程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前几天在微博上看到24点的游戏,6 6 6 10.算了很久是在算不出来,最后我想我何不写一个小程序解决它?说做就做,我刚开始的想法很简单,就是列举4个数的 ...
- c语言简单的24点游戏,C语言解24点游戏程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前几天在微博上看到24点的游戏,6 6 6 10.算了很久是在算不出来,最后我想我何不写一个小程序解决它?说做就做,我刚开始的想法很简单,就是列举4个数的 ...
- 2048游戏c语言实验报告,2048游戏语言实验报告.doc
2048游戏语言实验报告 成绩评定 教师签名 评定日期 嘉应学院 计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015-2016学年第1学期 班 级: 计算机1505 指导老师: 陈广明 ...
- c语言计算24游戏,C语言解24点游戏程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前几天在微博上看到24点的游戏,6 6 6 10.算了很久是在算不出来,最后我想我何不写一个小程序解决它?说做就做,我刚开始的想法很简单,就是列举4个数的 ...
最新文章
- Idea--Tomcat配置中的On Upate Action 与 On Frame Deactivation
- centos 日志切割_CentOS下的日志切割
- Python之父,现在成为微软打工人
- 西南交通大学计算机绘图,西南交通大学网络教育计算机绘图主观题第二次答案...
- python和java哪个-Python和Java哪个好?有什么区别?
- Oracle三种循环:for,while,do...while(PL/SQL)
- 【NLP】NLP中的消歧
- NeurIPS 2020 | 聚焦自监督学习
- 前端技巧:如何使用nodejs实现举牌人表情包?
- [蓝桥杯2017决赛]分考场、OpenJudge:分成互质数
- escape encodeURI 和encodeURIComponent JS编码
- 【Qt开发】StyleSheet使用总结
- css伪元素选择器,first-letter、first-line
- 串口服务器gsd文件,PROFIBUS总线通信仪表GSD文件的选择
- 开发撞墙之奇怪的需求:经纬度带符号转换
- Telos 小白指南
- 最新ubuntu搭建公网个人邮件服务器(基于postfix,dovecot,mysql)
- 线程的条件变量(cond)
- 硬盘备份到新电脑,你需要知道这个技巧
- Eclipse中pep8规范,修改每行字符长度
热门文章
- 计算机如何连接wifi台式,台式电脑怎么连wifi
- 谷粒商城分布式基础篇1-个人版
- html条件查询,高级查询条件设置- 通用查询-报表设计初级教程
- **蒙特卡洛计算定积分VC++**
- 说说jvm什么时候会回收垃圾
- 关于调用第三方sdk
- 37.图灵接口及电脑语音聊天
- 大学计算机基础网络配置实验报告答案,2008大学计算机基础实验报告参考答案...
- 名帖347 怀素 草书《大草千字文》
- Android肝帝战纪之Fragmentation的使用(单Activity+多Fragment设计)