首页 > 其他 > 详细

CodeForces 621C 数学概率期望计算

时间:2016-02-06 14:23:24      阅读:205      评论:0      收藏:0      [点我收藏+]

昨天训练赛的题..比划了好久才想出来什么意思

之前想的是暴力for循环求出来然后储存数组 后来又想了想 自己萌的可以..

思路就是求出来每个人与他的右边的人在一起能拿钱的概率(V(或)的关系)然后*2000

又想起高考概率无情的2分...哭一会先

另外 这题的输出我没看懂...试了好几遍才过...(好吧我承认我看答案了)

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<map>
using namespace std;
int n,p;
int  l[100050];
int  r[100050];
int main()
{
    while(~scanf("%d%d",&n,&p))
    {
        for(int i=0;i<n;i++)
        {
            scanf("%d%d",&l[i],&r[i]);
        }
        l[n]=l[0];
        r[n]=r[0];
        double sum=0;
        for(int i=0;i<n;i++)
        {
            int x=(r[i]/p-(l[i]-1)/p);/// 偶数数量
            int y=(r[i+1]/p-(l[i+1]-1)/p);
            int xx=(r[i]-l[i]+1)-x;    ///奇数数量
            int yy=(r[i+1]-l[i+1]+1)-y;
            double z=1.0-1.0*(xx*1.0*yy)/(r[i]-l[i]+1)/(r[i+1]-l[i+1]+1);
            sum+=2000.0*z;
        }
        printf("%.6f\n",sum);
    }

}

  

CodeForces 621C 数学概率期望计算

原文:http://www.cnblogs.com/rayrayrainrain/p/5184001.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!