DZY Loves Balls
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 782 Accepted Submission(s): 455
Problem Description
DZY loves playing balls.
He has n balls in a big box. On each ball there is an integer written.
One day he decides to pick two balls from the box. First he randomly picks a ball from the box, and names it A . Next, without putting A back into the box, he randomly picks another ball from the box, and names it B .
If the number written on A is strictly greater than the number on B , he will feel happy.
Now you are given the numbers on each ball. Please calculate the probability that he feels happy.
He has n balls in a big box. On each ball there is an integer written.
One day he decides to pick two balls from the box. First he randomly picks a ball from the box, and names it A . Next, without putting A back into the box, he randomly picks another ball from the box, and names it B .
If the number written on A is strictly greater than the number on B , he will feel happy.
Now you are given the numbers on each ball. Please calculate the probability that he feels happy.
Input
First line contains
t
denoting the number of testcases.
t testcases follow. In each testcase, first line contains n , second line contains n space-separated positive integers ai , denoting the numbers on the balls.
( 1≤t≤300,2≤n≤300,1≤ai≤300 )
t testcases follow. In each testcase, first line contains n , second line contains n space-separated positive integers ai , denoting the numbers on the balls.
( 1≤t≤300,2≤n≤300,1≤ai≤300 )
Output
For each testcase, output a real number with 6 decimal places.
Sample Input
2 3 1 2 3 3 100 100 100
Sample Output
0.500000 0.000000
Source
Recommend
题目大意就是,从n个球中拿一个球不放回,第二次拿的比第一次大就会高兴。
testcases
代码:
/*=============================AC情况===============================*/
/*题目网址: http://acm.hdu.edu.cn/showproblem.php?pid=5645 */
/*时间: 2016年4月10日12:35:59*/
/*心得: 很简单的一道题,之前用的排列组合没做出来
今天换了一种思路 ,用暴力列举所有的情况,
第二次大于第一次为胜利*/
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define G 666
using namespace std;
int main() {
int t,n,wqs[G];
int zong;
scanf("%d",&t);
while(t--) {
double sum=0;
scanf("%d",&n);
double zong=n*(n-1);//求出全部的情况
for(int j=0; j<n; j++)
scanf("%d",&wqs[j]);
for(int j=0; j<n; j++) {
for(int k=0; k<n; k++) {
if(wqs[k]>wqs[j])
sum++;
}
}
double ans=sum/zong;
printf("%llf\n",ans);
}
return 0;
}