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 }
  • 相关阅读:
    vue中的 computed 和 watch 的区别
    mysql8.0 初始化数据库及表名大小写问题
    sql server alwayson 调整数据文件路径
    zabbix 自定义监控 SQL Server
    mysql 创建用户及授权
    mysql 设置从库只读模式
    mysql8.0 主从复制安装及配置
    centos8.0安装mysql8.0
    centos8替换阿里数据源
    npm publish 报错 【you or one of your dependencies are requesting a package version that is forbidden by your security policy】
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/7227598.html
Copyright © 2011-2022 走看看