专栏首页Code思维奇妙屋LightOj_1265 Island of Survival

LightOj_1265 Island of Survival

题目链接

题意:

  在孤岛生存, 孤岛上有t头老虎,d头鹿, 每天会出现随机出现两只生物(包括你自己), 如果出现了一只老虎,那么你将被吃掉, 如果两只老虎, 则两只老虎会同归于尽,其他情况你都将生存下来。

  当孤岛上没有老虎时, 就视为你生存成功。

  问你生存成功的最大概率。

思路:

  仔细想一想, 生存下来其实只和老虎有关, 因为你遇上其他情况, 你都会存活下来。

  就相当于是一个0 - 1分布, 要么活下来, 要么被吃掉。

  如果t只老虎是一个奇数, 那么必然存活失败, 因为老虎的消耗是成对的, 你要存活下来最基本的条件就是所有的老虎都同归于尽了, 或者没有老虎, 否则你总会有一天遇见老虎。

  如果t只老虎是一个偶数, 那么不一定存活成功。

  因为每天都会出现两只生物, 那么我们计算t只老虎同归于尽的最大概率。

  每天随机出现两只生物,所有的情况数:t * (t + 1)(因为鹿与存活与否无关),两只老虎遇见的情况数:t * (t - 1)

  概率P = t * (t - 1) / (t * (t + 1)) = (t - 1) / (t + 1)

代码:

 1 #include <cmath>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cstdlib>
 5 #include <ctime>
 6 #include <set>
 7 #include <map>
 8 #include <list>
 9 #include <queue>
10 #include <string>
11 #include <vector>
12 #include <fstream>
13 #include <iterator>
14 #include <iostream>
15 #include <algorithm>
16 using namespace std;
17 #define LL long long
18 #define INF 0x3f3f3f3f
19 #define MOD 1000000007
20 #define eps 1e-6
21 #define MAXN 1010
22 int t, d;
23 double solve()
24 {
25     double ans = 0.0;
26     if(t % 2 == 1) return ans;
27     ans = 1.0;
28     if(t == 0) return ans;
29 
30     int x = t;
31     while(x)
32     {
33         ans *= 1.0 * (x - 1.0) / (x + 1.0);
34         x -= 2;
35     }
36     return ans;
37 }
38 
39 int main()
40 {
41     int T;
42     int kcase = 0;
43     scanf("%d", &T);
44     while(T --)
45     {
46         scanf("%d %d", &t, &d);
47         printf("Case %d: %.7lf\n", ++ kcase, solve());
48     }
49     return 0;
50 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java内部类的作用(二)----隐藏作用

    局部内部类有一个优势:即对外部世界完全可以隐藏起来,在这个方法类中的其它方法或者代码都不能调用这个内部类。更不用说其它的类了

    wust小吴
  • 「android」摆正姿势,dagger2,从精通到上瘾

    dagger2的大名我想大家都已经很熟了,它是解决Android或java中依赖注入的一个类库(DI类库)。当我看到一些开源的项目在使用dagger2时,我也有...

    java爱好者
  • 在CentOS/RHEL 7.X安装 EPEL repo 的方法

    版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转...

    耕耘实录
  • Jenkins可用环境变量以及使用方法

    在这之前,没有自己配置过Jenkins,都是照猫画虎,Copy原来已经配好的项目过来修修改改,一直想不明白比如BUILD_NUMBER之类的东西是哪来的(其实是...

    软测小生
  • 5步骤完成springboot 整合freemarker模板引擎

    freemarker是个不错的模板引擎,在网页静态化的模板使用中口碑很好,今天就用springboot来整合这个模板。

    用户1956326
  • 自动化测试上传文件之Sikuli图片识别代替AutoIT

    这里介绍一下另外一种解决方案:使用Sikuli进行图片识别,来对Windows弹出框或者其他Windows窗口进行一系列的操作。

    软测小生
  • 网站内容重复影响SEO概率很小

    网站内容,重复性的出现会影响SEO吗?在SEO圈子里面似乎有很多人对重复内容认知错误,我相信很多人都会听到,如果你的网站上有重复内容,将受到搜索引擎处罚。处罚就...

    林雍岷
  • 2019最新14个国外知名开发者社区

    端午节后第一天不是很忙,给自己和粉丝整理了一批国外优秀开发者社区,是时候给自己充充电顺便补补英语了,一定要多看看哦。

    王炸
  • Android反编译 -- 错误代码还原

    反编译的代码中会有很多setColor(int)的情况,比如setColor(-16777216),这个值比较特别,能轻易的查到Android文档中对这个整数的...

    他叫自己MR.张
  • Docker中未指定挂载点容器间volume卷的数据共享

    在实际使用过程中,我们可能会经常遇到容器间数据共享的情况,怎么处理呢?通过 docker 命令中的一些选项,我们即可完成容器间的数据共享。

    耕耘实录

扫码关注云+社区

领取腾讯云代金券