Aizu 2303 Marathon Match

因为第i个人休息j次服从二项分布,算一下组合数。

数据范围小。

求出第i个人休息j次的概率和对应的时间之后,全概率公式暴力统计。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 101,maxm = 51;
int P[maxn],T[maxn],V[maxn];
long long C[maxm][maxm];
double rst[maxn][maxm];
double tim[maxn][maxm];
//const double eps = 1e-11;
//#define LOCAL
int main()
{
#ifdef LOCAL
    freopen("in.txt","r",stdin);
#endif
    int n,m,l; scanf("%d%d%d",&n,&m,&l);
    C[0][0] = 1;
    for(int i = 1; i < maxm; i++){
        C[i][i] = C[i][0] = 1;
        for(int j = 1; j < i; j++){
            C[i][j] = C[i-1][j] + C[i-1][j-1];
        }
        //cout<<C[i][i/2]<<endl;
    }
    for(int i = 0; i < n; i++){
        scanf("%d%d%d",P+i,T+i,V+i);
    }
    int rt = 0;
    for(int i = 0; i < n; i++){
        double p = P[i]/100., t0 = l*1./V[i];
        for(int j = 0; j <= m; j++){
            rst[i][j] = C[m][j]*(pow(p,j))*(pow(1-p,m-j));
            tim[i][j] = t0+j*T[i];
        }
        //for(int j = 1; j <= m; j++){
       //     rst[i][j] += rst[i][j-1];
      //  }
    }
    for(int i = 0; i < n; i++){
        double ans = 0;
        for(int j = 0; j <= m; j++){
            double t = tim[i][j], wn = 1;
            for(int k = 0; k < n; k++){
                if(k == i) continue;
                double twn = 0;
                for(int j2 = m; j2 >= 0; j2--){
                    if(tim[k][j2] <= t) break;
                    twn += rst[k][j2];
                }
                wn *= twn;
            }
            ans += wn*rst[i][j];
        }
        printf("%lf\n",ans);
    }
    return 0;
}
时间: 2024-11-07 18:35:29

Aizu 2303 Marathon Match的相关文章

Aizu 2303 Marathon Match 概率dp

题目链接:点击打开链接 题意: 一场马拉松 给定n个运动员,跑道上有m个休息站,马拉松跑道长L 下面n行每行3个参数 表示每个运动员崩溃概率:P 休息时间:E 跑步速度:V. 每个运动员随时会崩溃,崩溃后会坚持到下一个休息站,进入休息他的休息时间.全程匀速运动,可能多次崩溃. 问: 每个运动员成为唯一一个第一名的概率. 思路: 其实可以转换成每个运动员进入下一个休息站的概率是P 每次单独求一个运动员成为第一名的概率. 暴力枚举这个运动员进入休息站的次数. 然后枚举其他的运动员比他慢的概率,相乘得

maven -- 问题解决(三)Java compiler level does not match the version of the installed Java project facet

问题: Java compiler level does not match the version of the installed Java project facet 解决方法如下: properties->Java Compiler,修改JDK版本,然后Apply

-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.chan

第一次使用Maven ,在eclipse中执行pom.xml文件的时候报错. -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match. 参考网上的解决方案: 设一个环境变量M2_HOME指向你的maven安装目录 M2_HOME=D:\Apps\apache-maven-3.3.1 然后在Window->Prefe

HDU3081Marriage Match II(二分答案+并查集+最大流SAP)经典

Marriage Match II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2507    Accepted Submission(s): 856 Problem Description Presumably, you all have known the question of stable marriage match. A

poj 1985 Cow Marathon 【树的直径】

题目:poj 1985 Cow Marathon 题意:给出一个树,让你求树的直径. 分析: 树的直径:树上两点之间的最大距离. 我们从任意一点出发,BFS一个最远距离,然后从这个点出发,在BFS一个最远距离,就是树的直径. AC代码: /* POJ:1985 Cow Marathon 2014/10/12/21:18 Yougth*/ #include <cstdio> #include <iostream> #include <algorithm> #include

eBay搜索排名规则Best Match

对于电商卖家而言,站内搜索时最重要的流量来源,因此作为卖家必须要了解平台的搜索排名规则,只有店铺的操作符合搜索排名规则,才能有效地提升商品的搜索曝光率.对于eBay卖家而言最重要搜索排名规则就是"最佳配/BestMatch".今天就带大家了解什么是ebay Best Match? 什么是Best Match? 第一,Best Match来源: 为了提高买家用户体验,卖家需要迎合买家需求和习惯. 第二,买家和卖家的匹配: 通过搜索排名规则,引导卖家不断提高买家的购物体验.Best Mat

Python学习笔记——基础篇【第五周】——re.match与re.search的区别

正则表达式 语法: import re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0-9]代表匹配0至9的任意一个数字, 所以这里的意思是对传进来的字符串进行匹配,如果这个字符串的开头第一个字符是数字,就代表匹配上了 m = p.match('14534Abc') #按上面生成的正则对象 去匹配 字符串, 如果能匹配成功,这个m就会有值, 否则m为None if m: #不为空代表匹配上了 print(m.group

Mesos和Marathon

libz is required for mesos to build 需要安装zlib-devel-1.2.7-17.el7.x86_64.rpm 其实跨Shell的Profile文件同步只要执行source /etc/profile即可 configure: error: Could not link test program to Python. Maybe the main Python library has been installed in some non-standard li

5.Python里面match()和search()的区别?

Python里面match()和search()的区别? '''match()从第一个字符开始找,如果第一个就不匹配,会直接返回None,不继续匹配.主要用于匹配开头''' #coding=utf-8 import re result = re.match("www","www.cn") result.group() >>'www' # 否则返回None '''search()会在整个字符串中查找,知道找到一个匹配的''' #coding=utf-8 i