1298: [蓝桥杯2016初赛]取球博弈 (博弈)

1298: [蓝桥杯2016初赛]取球博弈 (博弈)

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using namespace std;

int n[3];

int n1,n2,n3;

char cache[1000][2][2];

///本题关键是要用三维数组储存已经运行过的数据的结果,当以后有相同的数据时,直接返回结果即可,可以降低时间复杂度

///游戏判断输赢的关键是判断me和you结果的奇偶性!!!和最后结果的数的大小没任何关系 ,这一点想通后,下面的代码会更容易理解

char f(int num,int me,int you) ///表示当前取球人面临的局面

{/// 球的总数 我方持有的数目 对方持有的数目

if(num

{

if((me%2!=0)&&(you%2==0))

{

return '+';

}

else if((me%2==0)&&(you%2!=0))

{

return '-';

}

else return '0';

}

if(cache[num][me][you]!='\0') ///如果之前有这个相同的num,me(奇偶数相同),you (奇偶数相同),返回

{

return cache[num][me][you];

}

bool ping=false;

for(int i=0;i<3;i++)

{

if(num>=n[i])

{

char res=f(num-n[i],you,(n[i]&1)==0?me:(1-me)); ///判断me(初始是0)+n[i],即判断n[i]的奇偶数

if(res=='-')

{

cache[num][me][you]='+'; ///记忆化处理

return '+';

}

if(res=='0')

{

ping=true;

}

}

}

if(ping)

{

cache[num][me][you]='0';

return '0';

}

else

{

cache[num][me][you]='-';

return '-';

}

}

int main()

{

while(~scanf("%d%d%d",&n1,&n2,&n3))

{memset(cache,'\0',sizeof(cache));

n[0]=n1;

n[1]=n2;

n[2]=n3;

sort(n,n+3);

int cnt=0;

for(int i=1;i<=5;i++)

{

int num;

scanf("%d",&num);

char ans=f(num,0,0);

printf("%c",ans);

if(i!=5) printf(" ");

}

printf("\n");

}

return 0;

}

1298: [蓝桥杯2016初赛]取球博弈 (博弈)相关教程

2018年第九届蓝桥杯【C++省赛B组】【第七题:螺旋折线】——题目

2018年第九届蓝桥杯【C++省赛B组】【第七题:螺旋折线】——题目规律及解题源码 题目: 标题:螺旋折线 如图p1.png所示的螺旋折线经过平面上所有整点恰好一次。 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。 例如di

蓝桥杯 试题 算法训练——猴子吃包子

蓝桥杯 试题 算法训练——猴子吃包子 题解 后台数据只有两位小数。。。 记录一下格式化写法 AC-Code //#include bits/stdc++.h#include iostream#include vector#include algorithm#include queue#include string.h#include iomanipusing namespace std;typed

Luogu P6269 [COCI2016-2017#1] Vje?tica 题解

Luogu P6269 [COCI2016-2017#1] Vje?tica 题解 题目传送门 题目描述 Matej 面临着一个难题。在此之前,我们必须熟悉一种称作前缀树( trie )的数据结构。前缀树以前缀的方式,储存单词: 前缀树的每一条边都用英文字母表中的字母表示。 前缀树的根节点表示空

第十一届蓝桥杯大赛软件类省赛Java大学B组(第一场)

第十一届蓝桥杯大赛软件类省赛Java大学B组(第一场) YcRikGSunlRzgDlvRwYkXkrGWWhXaA def fib(n): x = 1 y = 1 cnt = 2 while cnt n: ans = x + y y = x x = ans cnt += 1 return ans import java.math.BigInteger;public class Main {public static void ma

[蓝桥杯2016初赛]压缩变换 (c++版本)

[蓝桥杯2016初赛]压缩变换 (c++版本) #includestdio.h#includeiostream#includemap#includestring.h#includealgorithm#includemath.h#includevector#define ll long longusing namespace std;const int maxn=100005;int a[maxn]; ///记录原始数据int ans[ma

2016年2月流量入口占比动态搜索引擎大涨2.14%

2016年2月流量入口占比动态:搜索引擎大涨2.14% IDC评述网(idcps.com)03月16日报道:根据百度统计发布的最新数据显示,在2016年2月,国内流量入口浏览量占比五强较量中,冠军直接访问的占比遭到蚕食,降至41.99%,但优势依旧明显。亚军其他外链的占比亦出

2016-12-6 前端制作

2016-12-6 前端制作 当前进度: 第一套模板已经制作完(还需修改) 模板截图: 2.第二套模板制作中: 预览: 现在第二套模板需要修改的地方: 1.底部文字修改 2.中间的线不够粗,圆不圆。 第一套模板修改的地方: 图片重新处理(不好看) 3.当前规划: 2.复习前

2016-12-5 前端制作

2016-12-5 前端制作 首先贴一下现在的进度 然后就是js的学习 对几个常用事件进行了了解 onclick 元素被单击事件 Onblur 元素失去焦点事件 onfocus元素获得焦点 onchange编辑框内文本被改变 onkeydown键盘某键被按下,返回键的ascii码 onload 元素加载完成事

蓝桥杯取球博弈c语言算法,1298: [蓝桥杯2016初赛]取球博弈 (博弈)相关推荐

  1. 蓝桥杯第十届c语言试题答案,蓝桥杯试题答案(C语言)蓝桥杯试题答案(C语言).pdf...

    蓝桥杯试题答案(C语言)蓝桥杯试题答案(C语言) 1.亲密数:假设有a.b两个数,若a的所有因子之和等于b,b的所有因子之和等于a,并 且a不等于b,则称a和b是一对亲密数.如284和220就是一对亲 ...

  2. 蓝桥杯2016初赛python题解

    前言:除特殊说明外题解均可AC 蓝桥杯2016初赛 [蓝桥杯2016初赛]网友年龄 [蓝桥杯2016初赛]生日蜡烛 [蓝桥杯2016初赛]方格填数 [蓝桥杯2016初赛]寒假作业 [蓝桥杯2016初赛 ...

  3. 蓝桥杯第七届省赛java组大题解析(“取球博弈”??难度,“压缩变换”三星难度)

    第六题 题目: 方格填数 如下的10个格子    +--+--+--+    | 0| 1| 2| +--+--+--+--+ | 3| 4| 5| 6| +--+--+--+--+ | 7| 8| ...

  4. 蓝桥杯抽卡游戏c语言,取球游戏——第三届蓝桥杯省赛C语言A组第10题

    今盒子里有n个小球,A.B两人轮流从盒中取球,每一个人均可以看到另外一我的取了多少个,也能够看到盒中还剩下多少个,而且两人都很聪明,不会作出错误的判断.编程 每一个人从盒子中取出的球的数目必须是:1, ...

  5. 【算法】蓝桥杯dfs深度优先搜索之排列组合总结

    [导航] 上一篇文章 → <[算法]蓝桥杯dfs深度优先搜索之凑算式总结>   为了重申感谢之意,再次声明下文的大部分灵感均来自于[CSDN]梅森上校<JAVA版本:DFS算法题解两 ...

  6. 蓝桥杯 十六进制转十进制 C语言版

    蓝桥杯 十六进制转十进制 C语言版 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~15分别用大写的英文字母A.B.C.D.E.F表示 ...

  7. 【算法】蓝桥杯dfs深度优先搜索之图连通总结

    前言 上两篇文章 → <[算法]蓝桥杯dfs深度优先搜索之排列组合总结>      → <[算法]蓝桥杯dfs深度优先搜索之凑算式总结>   为了重申感谢之意,第三次声明下文的 ...

  8. 三个字母排列组合c语言,n个球的排列组合算法

    /*算法说明: 问题:现在有n个球,分别编号为1,2,3···n,对这n个球有多少种不重复的排列,列出所有的排列. 解:由数学知识可知:第一个球有n种选择,第二个球有n-1个选择··所以共有n!种选择 ...

  9. 国信蓝点杯第二届(2011)C语言大赛样题整合

    http://blog.sina.com.cn/s/blog_44e1ec3801018d3r.html 国信蓝点杯第二届(2011)C语言大赛样题整合(2012-12-26 08:49:16) 比赛 ...

最新文章

  1. 通用类 RemoteUpload 远程上传从其他网站复制过来的图片
  2. SVN 问题解决之 The XML response contains invalid XML
  3. Android--手势触控屏幕控制/GestureDetector
  4. mysql 分页查询时,如何正确的获取总数
  5. JWT对称加密非对称加密
  6. Android使用GestureDetector实现手势滑动效果
  7. Alictf 2015决赛题目设计和解题思路
  8. 五分钟读懂UML类图
  9. 26个要素,仅仅依靠百度打造成功网站
  10. kkfileview v2.0 发布,文件在线预览项目方案
  11. javascript的list循环
  12. ssh 连接linux 乱码问题,SSH 连接 Ubuntu 时的中文乱码问题
  13. 卸载MySQL以及重装卡到Start Services的解决办法(亲测有效,刚重装成功)
  14. 闪信霸屏短信USSD是什么?
  15. IntelliJ IDEA常用快捷键
  16. 遥感软件显示影像名称-影像挑选查看等操作
  17. SQL数据库置疑数据怎么恢复
  18. Android集成佳博热敏打印机打印小票商品名称换行问题
  19. Mean-shift算法的直观理解
  20. Linux下的mysql ,1142 问题总结

热门文章

  1. 电脑开机mysql会有弹框_开机自动弹出窗口怎么解决
  2. 组合导航最优综合与滤波方法 -- 《组合导航原理与应用(西北工业大学出版社)》读书笔记(3)
  3. python的filter函数
  4. 老板们总想做智能财务,图的是智能财务分析、财务可视化
  5. 安装gcc7.1.0
  6. Kotlin 之 协程
  7. 学计算机找对象容易吗,大学“单身率”最高的4个专业,找对象还是找工作,这是一个问题...
  8. 找水果店要怎么选地址,水果店的地址选择
  9. jQuery实现3D立方体翻转插件
  10. 上海应用技术大学本科毕业论文答辩和论文选题PPT模板