zoukankan      html  css  js  c++  java
  • lightoj 1265 Island of Survival 概率

    这题我心里最承认的做法是dp[i][j]表示i个老虎,j个鹿的最大存活概率。然后推下转移方程,并不难推。下面这个博客就是这么做的。

    https://blog.csdn.net/qq_36346262/article/details/77970325

    但是实际上,这个做法边界判断有点多,感觉不优美,于是看了眼题解,发现鹿没用。

    这个直观上我是不理解的,我觉得鹿可以帮人挡老虎,为什么没有用。但仔细想,人最后能不能活下来,取决于老虎们的自相残杀。但鹿不会影响到老虎的自相残杀。所以也能算解释一波。

    这样子这个题就很简单了,老虎为奇数,肯定不行。老虎为偶数,我们就靠把人第一次没死,第二次没死...最后一次还没死的概率连乘起来。

    (C(2,t) / C(2,t + 1)) * (C(2,t - 2) / C(2,t - 1)) ....* (C(2,2) / C(2,3))这个式子化简下就是1 / (t + 1)了。

    然后发现了个语言基础的问题,用%lf输出0是会有问题的,需要写0.0。

     1 #include <cstdio>
     2 #include <algorithm>
     3 using namespace std;
     4 int T,cas,n,m;
     5 int main()
     6 {
     7     for (scanf("%d",&T);T != 0;T--)
     8     {
     9         scanf("%d%d",&n,&m);
    10         if (n & 1)
    11         {
    12             printf("Case %d: %.6lf
    ",++cas,0.0);
    13             continue;
    14         }
    15         printf("Case %d: %.6lf
    ",++cas,1.0 / (n + 1));
    16     }
    17     return 0;
    18 }
    心之所动 且就随缘去吧
  • 相关阅读:
    Codeforces Round #522(Div. 2) C.Playing Piano
    zstu月赛 招生
    Codeforces Round #519 D
    RMQ[区间最值查询] 算法
    Codeforces #364 (Div. 2) D. As Fa(数学公式推导 或者二分)
    尺取法
    Codeforces #366 (Div. 2) D. Ant Man (贪心)
    Codeforces #366 Div. 2 C. Thor (模拟
    裴蜀定理
    CF850 E. Random Elections
  • 原文地址:https://www.cnblogs.com/iat14/p/11414516.html
Copyright © 2011-2022 走看看