题目链接:点击查看

题目大意:给出k个黑球以及一个红球,两个人轮流摸球,摸到红球算赢,问先手有优势还是后手有优势还是都一样,若先手优势输出1,若后手优势输出2,若都一样输出0

题目分析:简单博弈,我们只要将前几种情况讨论一下答案就出来了:

  1. 当k=1时:很显然赢和输的概率都为1/2,所以输出0
  2. 当k=2时:先手摸到黑球的概率为2/3,也就是说此时后手的局势变为了k=1的情况,后手胜利的概率为2/3 * 1/2=1/3,所以先手胜利的概率为2/3,先手有优势,输出1
  3. 当k=3时:先手摸到黑球的概率为3/4,此时后手的局势变为了k=2的情况,则后手胜利的概率为3/4 * 2/3=1/2,所以先手胜利的概率为1/2,所以输出0
  4. 当k=4时:先手摸到黑球的概率为4/5,此时后手的局势变为了k=3的情况,则后手胜利的概率为4/5 * 1/2=2/5,所以先手胜利的概率为3/5,所以输出1
  5. 当k=5时:先手摸到黑球的概率为5/6,此时后手的局势变为了k=4的情况,则后手胜利的概率为5/6 * 3/5=1/2,所以先手胜利的概率为1/2,所以输出0

如此往复,我们可以发现进入了一个循环,那么循环的关键就是k的奇偶,当k为奇数时我们输出0,当k为偶数时我们输出1即可

#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cstring>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
#include<sstream>
using namespace std;typedef long long LL;const LL inf=0x3f3f3f3f3f3f3f3f;const int N=15;int main()
{
//  freopen("input.txt","r",stdin);int n;while(scanf("%d",&n)!=EOF)printf("%d\n",n&1?0:1);return 0;
}

HDU - 5978 To begin or not to begin(简单博弈)相关推荐

  1. SQL 异常处理 Begin try end try begin catch end catch--转

    SQL 异常处理 Begin try end try begin catch end catch 总结了一下错误捕捉方法:try catch ,@@error, raiserror 这是在数据库转换的 ...

  2. MySQL中 begin 事务 begin ,第二个begin带自动提交功能???

    两个begin,第二个begin带自动提交功能吗,不是只能commit和rollback提交结束事务吗?

  3. Why “transform(s.begin(),s.end(),s.begin(),tolower)” can't be complied successfully?

    From: http://stackoverflow.com/questions/5539249/why-transforms-begin-s-end-s-begin-tolower-cant-be- ...

  4. HDU 1564 简单博弈 水

    n*n棋盘,初始左上角有一个石头,每次放只能在相邻的四个位置之一,不能操作者输. 如果以初始石头编号为1作为后手,那么对于每次先手胜的情况其最后一步的四周的编号必定是奇数,且此时编号为偶数,而对于一个 ...

  5. HDU 1847 Good Luck in CET-4 Everybody! (巴什博弈)

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  6. HDU 5978 2016ICPC大连 H: To begin or not to begin

    题意: 黑色盒子里有n个白球,1个红球,两个人轮流取球,先取出红球的胜利 对于不同的n,先手优势输出1,劣势输出2,平等输出0 n=1,显然概率为1/2,平等 n=2,第一发取到白球概率是2/3也就是 ...

  7. mysql begin rollback_事务控制语句,begin,rollback,savepoint,隐式提交的SQL语句

    事务控制语句 在MySQL命令行的默认设置下,事务都是自动提交的,即执行SQL语句后就会马上执行COMMIT操作.因此开始一个事务,必须使用BEGIN.START TRANSACTION,或者执行SE ...

  8. 【LaTex】\begin{array}{r},\begin{array}{l},\begin{array}{c}

    r:right y = \left\{ \begin{array}{rr} a & 12345\\ b+x & 78\\ l &910 \end{array} \right. ...

  9. 【C++】STL——string的简单介绍、string类的访问和遍历、operator[] 、begin+ end begin 、rbegin + rend begin 、范围for

    文章目录 1.string类 1.1string类对象的访问及遍历操作 (1)operator[] (2)begin+ end begin (3)rbegin + rend begin (4)范围fo ...

最新文章

  1. java 编译原理 字符串_Java编译原理(javac)
  2. 有了防火墙、IPS、WAF 还需要数据库审计?
  3. 前端用sql 还是mysql_前端小白安装MySQL的踩坑路
  4. NXP UWB NCJ29D5开发(一)环境搭建
  5. 机器视觉系统需要考虑的十个问题
  6. 矩阵特征值和特征向量详细计算过程(转载)
  7. bzoj1625[Usaco2007 Dec]宝石手镯*
  8. BackToTop.js 为你的网站添加“回到顶部”按钮
  9. nodejs-日志组件log4js的使用方法
  10. Docker 配置容器固定IP
  11. 芝加哥打字机_芝加哥打字机不是打字机
  12. 经典SQL查询语句大全
  13. el-calendar 日历做排班、值班、打卡.......
  14. Webots学习笔记(四)---舵轮模型
  15. java项目进度跟踪管理系统
  16. 印象笔记Markdown思维导图
  17. 炫界 (667) -(回应骑两小)_安徽省桐城市迷你小南瓜春季栽培技术
  18. BRISK特征提取算法 .
  19. Linux系统之管道符
  20. java设置打印机默认纸张_java 打印设置打印A4 A5纸

热门文章

  1. MySQL高级 - 锁 - InnoDB行锁 - 间隙锁危害
  2. Nginx的Gzip模块配置指令(二)
  3. Atomic Integer 原理分析-其他方法
  4. CGLib 调用API 及原理分析
  5. Collections集合工具类的方法_sort(List)
  6. 数据库case when语句
  7. 单继承-问题的抛出-单纯封装可能会出现重复的代码
  8. springboot No Java compiler available for configuration options compilerClassName
  9. Scala语言整理(一)
  10. 多重循环练习之九九乘法表