IITD5 - Expected Cycle Sums

no tags 

We are given a sequence S of N distinct integers. Denote by S[i] as ith element of S.
Hardik picks up a random permutation of S , breaks it into product of disjoint cycles & looks at cycle containing S[i].He notes down the sum of all element of this cycle. Call the expected value of this sum as cycleSum[i]. Your task is to find the minimum value amongst all cycleSums.

Assume all permutations of these N numbers are equally likely.


Input Format :

First line contains an integer T which denotes the number of test cases. Then follow description of T test scenarios. Each test scenario takes 2 lines. First line contains a single integer N, the size of S. Then follows second line containing N elements of S.


Output Format :


Print answer for each test case , rounded to exactly one decimal place , in one line each.

Sample Input :
2
1
1
2
1 2


Sample Output:
1.0
2.0


Note: Notion of cycles for any sequence is defined by using index in the sequence (1-N).

Explaination for sample output :

In first case only possible permutation is (1)  So answer is trivially 1.0

In second case possible permutations are (1)(2) & (12).  As both of these are equally likely, cycleSum[1] = 1/2 * 1 + 1/2 * (1+2) = 2.0

And cycleSum[2] = 1/2 * 2 + 1/2 * (1+2) = 2.5.  Smaller of these is 2.0 , hence the answer.

Constraints :

1<=T<=500
1<=N<=5000
All elements of S are distinct integers in range 0 to 10^5


hide comments
Saurabh Jain: 2014-07-28 23:22:34

How the possible permutations are (1),(2) or (12) shouldn't it be 1,2 and 2,1

Nikhil Garg: 2010-10-23 17:24:56

@TheChamp - No where in the problem it is written that permutation would be broken in only 2 disjoint cycles.

The Champ: 2010-10-23 17:22:16

the test cases leave an ambiguity, will that permutation of S be broken into disjoints of only two sets. for example, s=1,2,3,4 so is (1)(2)(3,4) allowed since there are three disjoint sets


Added by:Nikhil Garg
Date:2010-10-15
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64 NODEJS OBJC VB.NET
Resource:own problem, used for IIT Delhi ACM ICPC provincial contest 2010