LightOJ 1268 Island of Survival 数学神解/不用写那些guapi概率dp

谢谢Wen_kr的翻译

题目大意:
你困在一个岛上,上面有老虎和鹿,分别有 只与 只。
如果有一天,你和老虎相遇,那么你死,你和鹿相遇,那么你可以选择杀死或者不杀死这头鹿,老虎和鹿相遇,那么鹿死,鹿和鹿相遇,什么也不会发生,老虎与老虎相遇,那么它们会杀死对方。
每天仅能有一对动物相遇,问你不死并且所有老虎死掉的最大概率。
第一种解法:概率dp
dp[i][j]为i头老虎j头鹿满足条件的概率。。。。。。
这个解法不重要,重要的是下一个。

第二种解法:数学贪心

尽量让老虎自相残杀 即当前老虎为t,那么概率p就累乘上 在t个里选2个/在t+1(老虎+人)个里选2个的概率
所以每次t-=2;

如果最后老虎剩了一个,判断有没有鹿,没有的话人就一定gg,输出0;
如果有,当前鹿为d个,p再乘上 在d个中选1个/在d+1(鹿+人)个中选一个的概率

可能是对的吧。毕竟我A了。
贴代码:

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
    int test;
    int casee=0;
    scanf("%d",&test);
    while(test--)
    {
        int t,d;
        scanf("%d%d",&t,&d);
        double p=1;
        while(t>0)
        {
            if (t==1) break;
            p=1.0*p*1.0*(t-1)/(t+1);
            t-=2;
        }
        casee++;
        if (t==1&&d==0) printf("Case %d: 0\n",casee);
        else {if (t==1) p*=d/(d+1);printf("Case %d: %.7lf\n",casee,fabs(p));}
    }
}

原文地址:https://www.cnblogs.com/lpzMPendragon/p/9070911.html

时间: 2024-08-29 13:46:27

LightOJ 1268 Island of Survival 数学神解/不用写那些guapi概率dp的相关文章

LightOJ 1265 Island of Survival 概率DP

H - Island of Survival Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Practice LightOJ 1265 Description You are in a reality show, and the show is way too real that they threw into an island. Only two kinds o

LightOJ - 1265 Island of Survival 期望

题目大意:有一个生存游戏,里面t只老虎,d只鹿,还有一个人,每天都要有两个生物碰面,现在有以下规则 1.老虎和老虎碰面,两只老虎就会同归于尽 2.老虎和人碰面或者和鹿碰面,老虎都会吃掉对方 3.人和鹿碰面,人可以选择吃或者不吃该鹿 4.鹿和鹿碰面,相安无事 问人存活下来的概率 解题思路:自己想复杂了,用了二维的dp... 看了别人的,发现根本不用dp,人生存下来的条件就是不被老虎吃掉,所以只要所有的老虎都同归于尽了,人就可以生存下来了 如果老虎的数量是奇数,那么人总有一天会被吃掉的 如果老虎的数

LightOJ 1065 Island of Survival (概率DP?)

题意:有 t 只老虎,d只鹿,还有一个人,每天都要有两个生物碰面,1.老虎和老虎碰面,两只老虎就会同归于尽 2.老虎和人碰面或者和鹿碰面,老虎都会吃掉对方 3.人和鹿碰面,人可以选择杀或者不杀该鹿4.鹿和鹿碰面,没事问人存活下来的概率 析:最后存活肯定是老虎没了,首先可以用概率dp来解决,dp[i][j] 表示 还剩下 i 考虑, j 只鹿存活的概率是多少. 然后每次分析这几种情况即可. 还有一种思路就是只要考虑老虎没了,只要老虎没了就能存活,只要计算老虎全死完的概率就好,首先如果老虎是奇数,是

light oj 1265 - Island of Survival(概率dp)

1265 - Island of Survival PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB You are in a reality show, and the show is way too real that they threw into an island. Only two kinds of animals are in the island, the tigers and t

sar-iostat-vmstat-参数详解

sar sar 是分析系统性能的重要工具之一,通过sar指令可以全面地获取系统的CPU运行队列.磁盘I/O.分页(交换分区).内存.CPU 中断网络等性能数据. sar [options] [-o filename] [interval count] options:  -A:显示系统所有资源设备,CPU.内存.磁盘 的运行状态.  -u:显示系统所有CPU 采样的负载.  -P:显示当前系统中指定CPU的使用情况  -d:显示系统所有硬盘设备在采样时间内的使用状况.  -r:显示系统内存在采样

Lightoj 1038 - Race to 1 Again (概率DP)

题目链接: Lightoj  1038 - Race to 1 Again 题目描述: 给出一个数D,每次可以选择数D的一个因子,用数D除上这个因子得到一个新的数D,为数D变为1的操作次数的期望为多少? 解题思路: 概率DP咯,对于只知道期望是:E(X) = X1*p(X1) + X2*p(X2) + …… + Xn*p(Xn)的窝,拿这个题目没有一点办法.然后看了讨论版,发现总会有一些神人存在. 求操作次数的期望时,先设定第i个因子给期望的贡献为Ti,那么有:E = (T1 + T2 + T3

hdu 4870 Rating(概率DP&amp;高数消元)

Rating Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 714    Accepted Submission(s): 452 Special Judge Problem Description A little girl loves programming competition very much. Recently, she

HDU3555 区间的数里面有49的个数(数位dp)

题目:区间的数里面有49的个数 分析: dp[pos][0]:长度为pos的数中,不包含49的,前一位不为4的有多少个:dp[pos][1]:长度为pos的数中,不包含49的,前一位为4的有多少个:dp[pos][2]:长度为pos的数中,包含49的有多少个: 一开始我是打算先算不满足的,在算满足的:结果不行,可能这样算出来的数太大了所以不行吧: 通过这道题可以更加理解了(不要62)这个题目的sta 的表示 , 原来如此呀 #include<stdio.h> #include<strin

Python基础03-函数详解

Python函数详解 这次内容包含: 函数 模块 文件操作 异常处理 函数: 认识函数 局部变量与全局变量 函数参数使用详解 函数使用实战 函数的本质就是功能的分装.比如 我们封装一个求a的2次方的函数c=a*a.如果我们求2次方变可以使用这个函数了(只是打比方). Python中pow(x,y)就是求x的y次方的函数. 作用:提供编程效率与程序的刻度性 局部变量与全局变量 变量有生效范围,范围就是作用域. 全局变量:作用域从变量出现开始到程序的最末的变量就做全局变量 局部变量:作用域只在局部的