• G


    原文链接

    G - 確率
    Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu

    Description

    话说当年语文考满分的你认识标题第一个字吗?

     

    HPU有很多内湖,湖里面放养了很多金鱼(还有黑白天鹅?),每天都会有很多小伙伴在湖边看金鱼在水中嬉戏(黑白天鹅打架?)。

    Ocean是一个善于思考的好孩子,今天他给你出了一道题目: 
    假设湖中一共有NN条金鱼,现在Ocean随机挑出两条金鱼,问这两条金鱼颜色不同的概率? 

    为了降低题目难度,Ocean认为金鱼只会有66种不同的颜色,即1234561,2,3,4,5,6。

    PS:在挑出来第二条鱼之前,Ocean是不会将第一条鱼放入湖中的。

    Input

    第一行输入一个整数TT,代表有TT组测试数据。 
    每组数据占两行,第一行输入一个整数NN代表上面提到的信息。 
    下面一行输入NN个整数coloricolori,代表第ii条金鱼的颜色。 
    colori=1colori=1,代表第ii条金鱼的颜色为11,其它依次类推。 

    注:1<=T<=1002<=N<=1001<=colori<=61<=T<=100,2<=N<=100,1<=colori<=6。 

    Output

    对每组测试数据,输出一个浮点数代表最后的结果,要求保留两位小数

    Sample Input

    2
    4
    1 1 2 2
    2
    2 2

    Sample Output

    0.67
    0.00

    Hint

     
     
     
     自己写的时候也AC了出来,但是使用的暴力的方法,今天发现别人有简单的方法,复制过来,以后查看。
     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<string.h>
     4 #include<algorithm>
     5 using namespace std;
     6 
     7 int fun(int x)
     8 {
     9     if(x<2)
    10       return 0;
    11     else
    12       return x*(x-1)/2;
    13 }
    14 
    15 int main()
    16 {
    17     int t,n,i,k,j;
    18     int a[10];
    19     double p;
    20     scanf("%d",&t);
    21     while(t--)
    22     {
    23         scanf("%d",&n);
    24         memset(a,0,sizeof(a));
    25         for(i=0;i<n;i++)
    26         {
    27             scanf("%d",&k);
    28             a[k]++;
    29         }  
    30         k=fun(n);
    31         j=0;
    32         for(i=1;i<=6;i++)
    33           j+=fun(a[i]);
    34         p=1-j*1.0/k;
    35         printf("%.2lf
    ",p);  
    36     }
    37     return 0;
    38 }
    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    A
    N
    M
    L
    K
    J
    sass
    通过ps给透明通道的图片添加灰度(适用于需要兼容IE7,效果很好)
    CSS十一问——好奇心+刨根问底=CSSer
    清除浮动的7种方法
  • 原文地址:https://www.cnblogs.com/h-hkai/p/7410458.html
Copyright © 2020-2023  润新知