balls

 Accepts: 19
 Submissions: 55
 Time Limit: 6000/3000 MS (Java/Others)
 Memory Limit: 65536/65536 K (Java/Others)
问题描述
有nn个球,共有mm种颜色,第ii个球的颜色为jj的概率为\frac{a_{i,j}}{a_{i,1}+a_{i,2}+...+a_{i,m}}​a​i,1​​+a​i,2​​+...+a​i,m​​​​a​i,j​​​​。
对于第ii种颜色,若有xx个球,对答案的贡献为x^{2}x​2​​。
问答案的期望。
输入描述
若干组数据(大概55组)。
每组数据第一行两个整数n(1 \leq n \leq 1000), m(1 \leq m \leq 1000)n(1≤n≤1000),m(1≤m≤1000)。
接下来nn行每行mm个数表示a_i,j(1 \leq a_i,j \leq 100)a​i​​,j(1≤a​i​​,j≤100)
输出描述
对于每组数组,输出一行表示答案,保留两位小数。
输入样例
2 2
1 1
3 5
2 2
4 5
4 2
2 2
2 4
1 4
输出样例
3.00
2.96
3.20

val[i][j]表示第i个球颜色为j的概率。那么第i个球颜色为j的期望E[x[i][j]]=val[i][j]*1+(1-val[i][j])*0=val[i][j]

c[i]表示颜色为i的球的个数。题目要求的是 sum(E[c[i]^2]) i的值从1到m。

从最简单的来看 如果要求的是E[c[i]],那么它等于E[(x[1][i]+x[2][i]...+x[n][i])]

现在要求的是E[c[i]^2]=E[(x[1][i]+x[2][i]...+x[n][i])^2]。

里面展开的话就是任意两个相乘,拿出其中一项来看 E[x[k1][i]*x[k2][i]]

若k1==k2,那这个等式等于=val[k1][i]

若k1!=k2,那这个等式等于=val[k1][i]*val[k2][i]

求和即是结果了。

代码:

#pragma warning(disable:4996)
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#include <queue>
using namespace std; const int maxn = 1005; int n, m;
double val[maxn][maxn]; int main()
{
//freopen("i.txt", "r", stdin);
//freopen("o.txt", "w", stdout); while (scanf("%d%d", &n, &m) != EOF)
{
for (int i = 1; i <= n; i++)
{
double sum = 0;
for (int j = 1; j <= m; j++)
{
scanf("%lf", &val[i][j]);
sum += val[i][j];
}
for (int j = 1; j <= m; j++)
{
val[i][j] = val[i][j] / sum;
}
}
double ans = 0;
for (int i = 1; i <= m; i++)
{
double sum = 0;
for (int j = 1; j <= n; j++)
{
sum += val[j][i];
ans += val[j][i];
ans -= val[j][i] * val[j][i];
}
ans += (sum*sum);
}
printf("%.2lf\n", ans);
}
//system("pause");
return 0;
}

HDU 5570:balls 期望。。。。。。。。。。。。。。。的更多相关文章

  1. HDU 5570 balls 期望 数学

    balls Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5570 De ...

  2. hdu 5570 balls(期望好题)

    Problem Description There are n balls with m colors. The possibility of that the color of the i-th b ...

  3. HDU 5810 Balls and Boxes(盒子与球)

     Balls and Boxes(盒子与球) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/O ...

  4. HDU 5984 数学期望

    对长为L的棒子随机取一点分割两部分,抛弃左边一部分,重复过程,直到长度小于d,问操作次数的期望. 区域赛的题,比较基础的概率论,我记得教材上有道很像的题,对1/len积分,$ln(L)-ln(d)+1 ...

  5. hdu 5810:Balls and Boxes(期望)

    题目链接 这题似乎就是纯概率论.. E(V)=D(X_i)=npq (p=1/m,p+q=1) #include<bits/stdc++.h> using namespace std; t ...

  6. HDU 5810 Balls and Boxes (找规律)

    Balls and Boxes 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5810 Description Mr. Chopsticks is i ...

  7. HDU 5810 Balls and Boxes 数学

    Balls and Boxes 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5810 Description Mr. Chopsticks is i ...

  8. poj 2096 Collecting Bugs && ZOJ 3329 One Person Game && hdu 4035 Maze——期望DP

    poj 2096 题目:http://poj.org/problem?id=2096 f[ i ][ j ] 表示收集了 i 个 n 的那个. j 个 s 的那个的期望步数. #include< ...

  9. HDU 4611 Balls Rearrangement 数学

    Balls Rearrangement 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=4611 Description Bob has N balls ...

随机推荐

  1. JS中constructor属性

    constructor属性用于对当前对象的构造函数的引用.可以用来判断对象的类型: <script> var newStr = new String("One world One ...

  2. Python 高级特性介绍 - 迭代的99种姿势 与协程

    Python 高级特性介绍 - 迭代的99种姿势 与协程 引言 写这个笔记记录一下一点点收获 测试环境版本: Python 3.7.4 (default, Sep 28 2019, 16:39:19) ...

  3. webstorm不能中文输入问题

    版本:2018.1.4 原因:http://www.javatang.com/archives/2017/08/27/52101751.html 解决方案:https://www.cnblogs.co ...

  4. python-用正则表达式筛选文本信息

    [摘要]  本文主要介绍如何对多个文本进行读取,并采用正则表达式对其中的信息进行筛选,将筛选出来的信息存写到一个新文本. 打开文件:open(‘文件名’,‘打开方式’)>>>file ...

  5. 大组合数Lucas

    https://blog.csdn.net/sr_19930829/article/details/39058487 LL Lucas(LL n, LL m, int p){ ; } Saving B ...

  6. opencv:图像查找表 与 颜色表

    LUT 使用 颜色查找表 example LUT applyColorMap // 读入制作好的lut.png Mat color = imread("D:/images/lut.png&q ...

  7. 【Struts APP_PATH】StartSystemListener

    StartSystemListener package k.filter; import javax.servlet.ServletContext; import javax.servlet.Serv ...

  8. jquery Ajax标准规范写法

    $.ajax({ url:"http://www.xxx",//请求的url地址 dataType:"json",//返回的格式为json async:true ...

  9. JS中的Boolean对象

    使用new操作符和Boolean(value)构造函数时,得到的并不是原始的true或false,而是一个对象,JS将对象视为真(true) var oBooleanTrue = new Boolea ...

  10. js 判断回文字符串

    回文字符串:字符串从前往后读和从后往前读字符顺序是一致的. 判断一个字符串是不是回文字符串 function isPalindrome(str) { var str1 = str.split(''). ...