zoukankan      html  css  js  c++  java
  • uva11021

    11021 - Tribles

    GRAVITATION, n.
    “The tendency of all bodies to approach one another with a strength
    proportion to the quantity of matter they contain – the quantity of
    matter they contain being ascertained by the strength of their tendency
    to approach one another. This is a lovely and edifying illustration of
    how science, having made A the proof of B, makes B the proof of A.”
    Ambrose Bierce
    You have a population of k Tribbles. This particular species of Tribbles live for exactly one day and
    then die. Just before death, a single Tribble has the probability Pi of giving birth to i more Tribbles.
    What is the probability that after m generations, every Tribble will be dead?
    Input
    The first line of input gives the number of cases, N. N test cases follow. Each one starts with a line
    containing n (1 ≤ n ≤ 1000), k (0 ≤ k ≤ 1000) and m (0 ≤ m ≤ 1000). The next n lines will give the
    probabilities P0, P1, . . . , Pn−1.
    Output
    For each test case, output one line containing ‘Case #x:’ followed by the answer, correct up to an
    absolute or relative error of 10−6
    .
    Sample Input
    4
    3 1 1
    0.33
    0.34
    0.33
    3 1 2
    0.33
    0.34
    0.33
    3 1 2
    0.5
    0.0
    0.5
    4 2 2
    0.5
    0.0
    0.0
    0.5
    Sample Output
    Case #1: 0.3300000

    Case #2: 0.4781370
    Case #3: 0.6250000
    Case #4: 0.3164062

    题解:求概率,由全概率公式可以得到f[i]=p[0]+p[1]f[i-1]+p[2]f[i-1]^2+......+p[n-1]f[i-1]^[n-1];

    题意就是给你一系列概率代表生i个麻球的概率,让求m天后都死亡的概率;This particular species of Tribbles live for exactly one day and
    then die.说明包括中途死的;p[j]*f[i-1]^j代表这个麻球生了j个后代,他们在I-1天全死亡的概率;由于是独立的所以是j次方;

    最后结果还要k次方;

    代码:

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    #define mem(x,y) memset(x,y,sizeof(x))
    const int MAXN=1010;
    double p[MAXN],f[MAXN];
    int main(){
    	int T,n,k,m,kase=0;
    	scanf("%d",&T);
    	while(T--){
    		scanf("%d%d%d",&n,&k,&m);
    		for(int i=0;i<n;i++)scanf("%lf",p+i);
    		mem(f,0);
    		f[1]=p[0];f[0]=0;
    		for(int i=2;i<=m;i++){
    			for(int j=0;j<n;j++){
    				f[i]+=p[j]*pow(f[i-1],j);
    			}
    		}
    		printf("Case #%d: %.7lf
    ",++kase,pow(f[m],k));
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    Vue 2.x windows环境下安装
    VSCODE官网下载缓慢或下载失败 解决办法
    angular cli 降级
    Win10 VS2019 设置 以管理员身份运行
    XSHELL 连接 阿里云ECS实例
    Chrome浏览器跨域设置
    DBeaver 执行 mysql 多条语句报错
    DBeaver 连接MySql 8.0 报错 Public Key Retrieval is not allowed
    DBeaver 连接MySql 8.0报错 Unable to load authentication plugin 'caching_sha2_password'
    Linux系统分区
  • 原文地址:https://www.cnblogs.com/handsomecui/p/4992228.html
Copyright © 2011-2022 走看看