zoukankan      html  css  js  c++  java
  • HDU 5810 Balls and Boxes (找规律)

    Balls and Boxes

    题目链接:

    http://acm.hdu.edu.cn/showproblem.php?pid=5810

    Description

    Mr. Chopsticks is interested in random phenomena, and he conducts an experiment to study randomness. In the experiment, he throws n balls into m boxes in such a manner that each ball has equal probability of going to each boxes. After the experiment, he calculated the statistical variance V as V = frac{sum_{i=1}^{m}(X_{i}-ar X)^{2}}{m} where Xi is the number of balls in the ith box, and X¯ is the average number of balls in a box. Your task is to find out the expected value of V.

    Input

    The first line is an integer T (T <= 10), indicating the number of test case. Each test case begins with an integer N (1 <= N <= 1000), indicating the number of towns. Then N numbers in a line, the ith number ai (0 <= ai < N) has been described above.

    Output

    For each test case, output "Case #X: Y" in a line (without quotes), where X is the case number starting from 1, and Y is "Yes" if you can construct successfully or "No" if it's impossible to reach the requirements. If Y is "Yes", output an integer M in a line, indicating the number of roads. Then M lines follow, each line contains two integers u and v (1 <= u, v <= N), separated with one single space, indicating a road direct from town u to town v. If there are multiple possible solutions, print any of them.

    Sample Input

    3 3 2 1 0 2 1 1 4 3 1 1 0

    Sample Output

    Case #1: Yes 2 1 2 2 3 Case #2: No Case #3: Yes 4 1 2 1 3 2 4 3 4

    Source

    2016 Multi-University Training Contest 7
    ##题意: 把n个球等可能地投入m个盒子. 求方差的期望.
    ##题解: 推了几个数,然后眼神拟合出公式..... ans = n*(m-1) / m^2 .
    官方题解: ![](http://images2015.cnblogs.com/blog/764119/201608/764119-20160809174317246-914199549.png)

    ##代码: ``` cpp #include #include #include #include #include #include #include #include #include #define LL long long #define eps 1e-8 #define maxn 1010 #define mod 100000007 #define inf 0x3f3f3f3f #define mid(a,b) ((a+b)>>1) #define IN freopen("in.txt","r",stdin); using namespace std;

    LL gcd(LL a,LL b) {
    return b==0? a:gcd(b,a%b);
    }

    int main(int argc, char const *argv[])
    {
    //IN;

    LL n,m;
    while(scanf("%lld %lld", &n,&m) != EOF && (n||m))
    {
        LL ans1 = n * (m - 1);
        LL ans2 = m * m;
        LL gcds = gcd(ans1, ans2);
    
        printf("%lld/%lld
    ", ans1/gcds, ans2/gcds);
    }
    
    return 0;
    

    }

  • 相关阅读:
    java线程小结1
    String和StringBuffer
    java队列的实现
    java栈的实现
    java链表
    this与super关键字总结
    JVM内存杂记1
    面试题18:删除链表节点
    面试题17:打印从 1 到最大的 n 位数
    面试题16:数值的整数次方
  • 原文地址:https://www.cnblogs.com/Sunshine-tcf/p/5754113.html
Copyright © 2011-2022 走看看