HDU - 5978 To begin or not to begin(简单博弈)
题目链接:点击查看
题目大意:给出k个黑球以及一个红球,两个人轮流摸球,摸到红球算赢,问先手有优势还是后手有优势还是都一样,若先手优势输出1,若后手优势输出2,若都一样输出0
题目分析:简单博弈,我们只要将前几种情况讨论一下答案就出来了:
- 当k=1时:很显然赢和输的概率都为1/2,所以输出0
- 当k=2时:先手摸到黑球的概率为2/3,也就是说此时后手的局势变为了k=1的情况,后手胜利的概率为2/3 * 1/2=1/3,所以先手胜利的概率为2/3,先手有优势,输出1
- 当k=3时:先手摸到黑球的概率为3/4,此时后手的局势变为了k=2的情况,则后手胜利的概率为3/4 * 2/3=1/2,所以先手胜利的概率为1/2,所以输出0
- 当k=4时:先手摸到黑球的概率为4/5,此时后手的局势变为了k=3的情况,则后手胜利的概率为4/5 * 1/2=2/5,所以先手胜利的概率为3/5,所以输出1
- 当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(简单博弈)相关推荐
- SQL 异常处理 Begin try end try begin catch end catch--转
SQL 异常处理 Begin try end try begin catch end catch 总结了一下错误捕捉方法:try catch ,@@error, raiserror 这是在数据库转换的 ...
- MySQL中 begin 事务 begin ,第二个begin带自动提交功能???
两个begin,第二个begin带自动提交功能吗,不是只能commit和rollback提交结束事务吗?
- 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- ...
- HDU 1564 简单博弈 水
n*n棋盘,初始左上角有一个石头,每次放只能在相邻的四个位置之一,不能操作者输. 如果以初始石头编号为1作为后手,那么对于每次先手胜的情况其最后一步的四周的编号必定是奇数,且此时编号为偶数,而对于一个 ...
- 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 ...
- HDU 5978 2016ICPC大连 H: To begin or not to begin
题意: 黑色盒子里有n个白球,1个红球,两个人轮流取球,先取出红球的胜利 对于不同的n,先手优势输出1,劣势输出2,平等输出0 n=1,显然概率为1/2,平等 n=2,第一发取到白球概率是2/3也就是 ...
- mysql begin rollback_事务控制语句,begin,rollback,savepoint,隐式提交的SQL语句
事务控制语句 在MySQL命令行的默认设置下,事务都是自动提交的,即执行SQL语句后就会马上执行COMMIT操作.因此开始一个事务,必须使用BEGIN.START TRANSACTION,或者执行SE ...
- 【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. ...
- 【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 ...
最新文章
- java 编译原理 字符串_Java编译原理(javac)
- 有了防火墙、IPS、WAF 还需要数据库审计?
- 前端用sql 还是mysql_前端小白安装MySQL的踩坑路
- NXP UWB NCJ29D5开发(一)环境搭建
- 机器视觉系统需要考虑的十个问题
- 矩阵特征值和特征向量详细计算过程(转载)
- bzoj1625[Usaco2007 Dec]宝石手镯*
- BackToTop.js 为你的网站添加“回到顶部”按钮
- nodejs-日志组件log4js的使用方法
- Docker 配置容器固定IP
- 芝加哥打字机_芝加哥打字机不是打字机
- 经典SQL查询语句大全
- el-calendar 日历做排班、值班、打卡.......
- Webots学习笔记(四)---舵轮模型
- java项目进度跟踪管理系统
- 印象笔记Markdown思维导图
- 炫界 (667) -(回应骑两小)_安徽省桐城市迷你小南瓜春季栽培技术
- BRISK特征提取算法 .
- Linux系统之管道符
- java设置打印机默认纸张_java 打印设置打印A4 A5纸