博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
取球博弈
阅读量:5317 次
发布时间:2019-06-14

本文共 1704 字,大约阅读时间需要 5 分钟。

两个人玩取球的游戏。

一共有N个球,每人轮流取球,每次可取集合{
n1,n2,n3}中的任何一个数目。

  • 如果无法继续取球,则游戏结束。
  • 此时,持有奇数个球的一方获胜。
  • 如果两人都是奇数,则为平局。

假设双方都采用最聪明的取法, 第一个取球的人一定能赢吗? 试编程解决这个问题。

输入格式:

第一行3个正整数n1 n2 n3,空格分开,表示每次可取的数目 (0<n1,n2,n3<100)

第二行5个正整数x1 x2 ... x5,空格分开,表示5局的初始球数(0<xi<1000)

输出格式:

一行5个字符,空格分开。分别表示每局先取球的人能否获胜。 能获胜则输出+, 次之,如有办法逼平对手,输出0, 无论如何都会输,则输出-

输入样例:

1 2 31 2 3 4 5

样例输出:

+ 0 + 0 -

输入样例:

1 4 510 11 12 13 15

样例输出:

0 - 0 + +

输入样例:

2 3 57 8 9 10 11

样例输出:

+ 0 0 0 0

请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理

 

 

直接模拟取球过程,首先把三个选择排个序,每次选择最大的满足条件的选择来执行,如果当前有偶数个就选择奇数的取,否则反之,如果到了最小的选择也没有满足的,就取最小的,直到剩下的球不够取了。

 

代码:

#include 
#include
#include
using namespace std;typedef long long ll;int num[3],n;int main() { for(int i = 0;i < 3;i ++) { scanf("%d",&num[i]); } sort(num,num + 3); for(int i = 0;i < 5;i ++) { scanf("%d",&n); int p1 = 0,p2 = 0; while(n >= num[0]) { for(int j = 2;j >= 0;j --) { if(num[j] <= n && (p1 % 2 ^ num[j] % 2 || j == 0)) { p1 += num[j]; n -= num[j]; break; } } for(int j = 2;j >= 0;j --) { if(num[j] <= n && (p2 % 2 ^ num[j] % 2 || j == 0)) { p2 += num[j]; n -= num[j]; break; } } } if(i) putchar(' '); if(p1 % 2 == 1 && p2 % 2 == 0) putchar('+'); else if(p1 % 2 == 0 && p2 % 2 == 1) putchar('-'); else putchar('0'); } return 0;}

 

转载于:https://www.cnblogs.com/8023spz/p/8428060.html

你可能感兴趣的文章
iOS基础-高级视图-UITableView--静态单元格
查看>>
打印图片的属性和实现另存图片功能以及使用numpy
查看>>
IOS-网络(大文件下载)
查看>>
基于MySQL的高可用可扩展架构探讨
查看>>
linux系统服务设置命令--chkconfig命令参数及用法详解
查看>>
Log4net数据表
查看>>
git fork
查看>>
玩转Javascript 给JS写测试
查看>>
struts2开发action 的三种方法以及通配符、路径匹配原则、常量
查看>>
【Tomcat】Tomcat配置与优化(内存、并发、管理)【自己配置】
查看>>
【IntelliJ】IntelliJ IDEA常用设置及快捷键以及自定义Live templates
查看>>
0714M
查看>>
动态加载vs静态加载
查看>>
Android:源码环境编译自定义的APP到ROM(System Image)中
查看>>
Careercup - Google面试题 - 4877486110277632
查看>>
SQL JOIN连接分类[转]
查看>>
js获取当前日期
查看>>
学习进度条第十周
查看>>
[C/C++]重读《The C Programming Language》
查看>>
汇编语言第二章总结
查看>>