被神选中的人

Time Limit: 5000/3000MS (Java/Others)     Memory Limit: 262144/262144KB (Java/Others)

Submit  Status

陈同学决定和同样无聊的同桌张同学玩一局有趣的游戏,来打发时间。

这游戏叫做《被神选中的人》.

陈同学非常熟练的从抽屉里拿出了一幅奇怪的扑克。

扑克牌中有n张红桃,在游戏中,被看作为神祗;有m张梅花,在游戏中,被视作恶魔;而里面也有一张方片A,这张卡,即代表被神选中的人,他叫

方片A。

游戏很简单,每回合,依次会从牌库中随机抽取两张牌,直到游戏结束。如果牌库中的牌不足两张,那么游戏直接结束。

当然,每次抽取两张牌会发生以下5种事件之一。

1、如果两张都为红桃,即神之相遇,什么事情都不会发生,将这两张牌重新洗进牌库。

2、如果两张都是梅花,即魔之相遇,两个恶魔均会死亡,那么就会将这两张牌拿走。

3、如果一张为红桃,一张为梅花,即神魔相争,神会死亡,而恶魔会存活。那么会将神牌拿走,将恶魔重新洗进牌库。

4、如果一张为方片A,一张红桃,即神之眷顾,这时候,方片A将会有两种选择,他必须选择其中的一个进行

4.1、弑神,那么神牌会拿走,而方片A会重新洗进牌库。

4.2、眷顾,神会祈福与方片A,什么事情都不会发生。这时候,两张牌都会被洗进牌库。

5、如果一张为梅花,一张为方片A,即遇魔,方片A将会死去,游戏结束。

正当陈同学和张同学想要开始玩的时候,何老师走了过来。。。

很显然,他们俩的小动作被老师发现了!

于是双双被罚,被罚去站在教室门口。

这时候,罚站的陈同学有了一个问题,问了问站在他旁边的张同学:“张同学,你知道里面方片A在采取最优策略的情况下,方片A有多大的概率能

一直活下去呢?"

张同学当然很快就回答出来了,而你知道吗?

为了使得答案更加有趣,你需要输出概率的倒数形式,并且保留恰好6位小数。

如果无论如何方片A都要死去,请输出:“too young,too simple"

Input

两个整数  n   m  表示这副奇怪的扑克有n张红桃,m张梅花

保证:

0<=n<=100000

0<=m<=100000

Output

输出恰好六位小数,表示这个方片A能一直活下去的概率的倒数。

如果无论如何方片A都不能活下去的话,请输出:“too young,too simple"

Sample input and output

Sample Input Sample Output
1 2
3.000000
1 1
too young,too simple

Hint

在第一个样例中,方片A,经过张同学的计算,他最终活下来的概率是1/3,那么将会输出3.000000

在第二个样例中,无论如何,总有某个时刻,将会抽出方片A和恶魔。所以方片A无论如何都将会死去。

请注意:请恰好输出6位小数,恰好,恰好!

Source

每周一题

My Solution

这个题目看上去好像很难,好多烟雾弹,参透其玄机则瞬解。
其实只和m张梅花有关。n张红桃则无关,随便怎么整,或者说用方块A全部弑神在说。
然后:
          1) 如果m%2==1显然 too young,too simple
2)如果m%2==0,则从m=2开始讨论,这个时候有m1、m2,所以2梅花为一种情况,而方块A可以和m1、m2,所以2种情况,
故1/3
m=4时,有m1、m2、m3、m4.所以2梅花有3、2、1共6中,方块A和m1、m2、m3、m4 共4种,则6/(6+4)然后下一步就和上面一样了 ,
故再乘1/3得1/5
m=6是同样讨论,把m视为不同,即m1、m2、m3、m4、m5、m6,这时为1/7
所以概率为1/(m+1),然后取倒数就是m+1了
1、先放在int然后输出的时候用(float)m+1
#include <cstdio>
using namespace std;
int main()
{int n,m;while(scanf("%d%d",&n,&m)==2){if(m%2) printf("too young,too simple\n");else printf("%.6f\n",float(m+1));}return 0;
}

2、由于觉得好玩,小优化了,一下,用"%d.000000"

#include <cstdio>
int main()
{int n,m;while(scanf("%d%d",&n,&m)==2){if(m%2) printf("too young,too simple\n");else printf("%d.000000\n",m+1);}return 0;
}

谢谢

UESTC 1261 被神选中的人 贪心法相关推荐

  1. 彭·雨之使徒·数据征服者·被黑暗选中的人·文华

    编 辑:彭文华 来 源:大数据架构师(ID:bigdata_arch) 彭友们好,我是老彭. 今天是上班的最后一天了,本来可以安安心心的写点东西.结果被媳妇拉着看了一级网剧,差点被一个二次元的中二整的 ...

  2. Java乘船_ACM:贪心法:乘船问题。

    题目:有n个人,第i个人的重量为wi,每艘船的最大载重量均为C,且最多只能乘两个人.用最少的船装载所有人. 分析:贪心法! 考虑最轻的人i,他应该和谁一起坐呢?如果每个人都无法和他一起坐船,那么唯一的 ...

  3. 【数据结构和算法设计】算法篇(7) 贪心法

    文章目录 7.1 贪心法概述 7.1.1 什么是贪心法 7.1.2 用贪心法求解的问题应具有的性质 1. 贪心选择性质 2. 最优子结构性质 7.1.3 贪心法的一般求解过程 7.2 求解活动安排问题 ...

  4. 《c陷阱与缺陷》之贪心法

    在词法分析中,有条规则:每个符号应该包含尽可能多的字符,被称为"贪心法"或"大嘴法". K&R表述如下:如果(编译器的)输入流截止至某个字符之前都已经被 ...

  5. 贪心问题JAVA_java背包问题(贪心法)

    完全背包问题 一个旅行者有一个最多能用m公斤的背包,现在有n种物品,每件的重量分别是W1,W2,...,Wn,每件的价值分别为C1,C2,...,Cn.若的每种物品的件数足够多.求旅行者能获得的最大总 ...

  6. 【LeetCode笔记】55. 跳跃游戏(Java、贪心法)

    文章目录 题目描述 解法 & 思路 题目描述 可以用动态规划来做,dp[i]代表以第i个下标做起点,可以到达的最远的地方,从后往前走,最后dp[0] >= len-1说明可达. 不过我的 ...

  7. 1214线段覆盖问题——贪心法

    题目描述: 给定x轴上的N(0<N<100)条线段,每个线段由它的二个端点a_I和b_I确定,I=1,2,--N.这些坐标都是区间(-999,999)的整数.有些线段之间会相互交叠或覆盖. ...

  8. 学渣的刷题之旅 leetcode刷题 53.最大子序和(动态规划,贪心法)

    给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4, ...

  9. 【算法】一文详解贪心法

    一.概述 贪心法将一个复杂问题分解为一系列较为简单的局部最优解,每一步都是对当前解的一个扩展,直到获得问题的完全解.贪心法的典型应用时求解最优化问题,而且即使是非最优解,最终得出的解也和最优解比较近似 ...

最新文章

  1. 深度学习新星:GAN的基本原理、应用和走向 | 硬创公开课
  2. 第 171 章 vagrant - Tool for building and distributing virtualized development environments
  3. 王道计算机考研 计算机组成原理 第一章、计算机系统概述
  4. 理解分布式一致性:Paxos协议之Cheap Paxos Fast Paxos
  5. ORACLE 限制特定IP访问数据库 访问白名单
  6. Gradle中的buildScript,gradle wrapper,dependencies等一些基础知识
  7. centos nodejs yarn安装及升级
  8. Java设计流程执行器_Java进阶面试精选系列:SpringMVC+SpringBoot+Hibernate+Mybatis+设计模式...
  9. 一男子安装lua开发环境傻逼操作,惊呆所有人
  10. console输出彩色字体
  11. 《高翔视觉slam十四讲》学习笔记 第五讲 相机与图像
  12. CSDN-markdown
  13. 查看系统信息msinfo32工具的使用
  14. python爬虫爬取图片代码_Python爬虫爬取煎蛋网图片代码实战
  15. 手机版wps怎么制作折线图_PPT制作必修课下载-PPT制作必修课app官方版v1.0手机版下载...
  16. 关于指针总结(指针种类,概念,作用与用途)
  17. android 热点 连接电脑上网,安卓手机做wifi热点让笔记本上网的方法
  18. 睡不醒别赖基因,UC伯克利最新研究:锻炼和早餐是关键
  19. torch.Tensor详解
  20. 翻译翻译什么叫HTML5(六)“开门,js来查水表啦”

热门文章

  1. Oracle创建用户、角色、授权、建表
  2. oracle vsm5,超人归来 对比奔驰E63 AMG vs BMW M5
  3. 电表老是跳闸,到底是怎么回事?
  4. python线程启动和暂停_threading之线程的开始,暂停和退出
  5. C# DataGridView 获取当前单元格输入内容
  6. linux mint kde 中文输入法,Linux Mint KDE上安装fcitx+sougou输入法
  7. 关于pm2项目启动成功,但pm2 list又显示errored的问题
  8. AI教你考托福?一家受谷歌、YC青睐的教育科技公司
  9. exists的用法 python_sql-exists、not exists的用法
  10. Python爬虫入门学习(一)