zoukankan      html  css  js  c++  java
  • LightOJ 1027 A Dangerous Maze(期望)

    https://cn.vjudge.net/problem/LightOJ-1027

    题意:
    有n扇门,每扇门有个时间ti,选择正数的门可以在ti后带你走出迷宫,负数的门会在ti后带你回到起点,然后重新选择,每扇门被选中的概率是一样的,求期望。

    思路:

    做这种期望的问题必须得列一个方程来求解,不然无限写下去的话算不出。

    设走出去的期望的E,对于第三个案例就是 E = 1/3 * 3  + 1/3( 6 + E) + 1/3 (9 + E),(选择第一扇门就直接出去,第二扇门先6分钟回去,然后再花期望E,第三扇门同理..)

    因为这里每扇门的概率都是一样的,所以对于上式,我们是可以进行合并的,sum1表示正数门时间之和,sum2表示复数门时间之和,cnt1表示正数门数量,cnt2表示负数门数量。

    于是,我们可以得到

    E=1/n*sum1+1/n*(sum2+cnt2*E) 
    化简得: 
    E = (sum1 + sum2) / (n-cnt2)。 

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstring>
     4 #include<cstdio>
     5 #include<sstream>
     6 #include<vector>
     7 #include<stack>
     8 #include<queue>
     9 #include<cmath>
    10 #include<map>
    11 #include<set>
    12 using namespace std;
    13 typedef long long ll;
    14 typedef pair<int,int> pll;
    15 const int INF = 0x3f3f3f3f;
    16 const int maxn = 100 + 5;
    17 
    18 int n;
    19 
    20 int door[maxn];
    21 
    22 int gcd(int a,int b)
    23 {
    24     return b==0?a:(gcd(b,a%b));
    25 }
    26 
    27 int main()
    28 {
    29     //freopen("in.txt","r",stdin);
    30     int T;
    31     int kase=0;
    32     scanf("%d",&T);
    33     while(T--)
    34     {
    35         printf("Case %d: ",++kase);
    36         scanf("%d",&n);
    37         for(int i=1;i<=n;i++)  scanf("%d",&door[i]);
    38 
    39         int sum1=0,sum2=0;
    40         int cnt1=0,cnt2=0;
    41         for(int i=1;i<=n;i++)
    42         {
    43             if(door[i]>0)   {cnt1++;sum1+=door[i];}
    44             else {cnt2++;sum2+=abs(door[i]);}
    45         }
    46 
    47         if(cnt1==0)  {printf("inf
    ");continue;}
    48         int g=gcd(sum1+sum2,n-cnt2);
    49         printf("%d/%d
    ",(sum1+sum2)/g,(n-cnt2)/g);
    50     }
    51     return 0;
    52 }
  • 相关阅读:
    hdu1251 && hud 1247 (字典树)
    linux系统调用kernel code
    Android init.rc 服务启动不成功
    android init执行service的脚本code位置
    printk %pS %pF含义
    进程页表图示
    linux内核之进程的基本概念(进程,进程组,会话关系)
    What is the purpose of the controlling terminal?
    android init.rc中service console option的含义、作用
    启动和停止init.rc中的服务
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/7227598.html
Copyright © 2011-2022 走看看