You probably have played the game “Throwing Balls into the Basket”. It is a simple game. You have to throw a ball into a basket from a certain distance. One day we (the AIUB ACMMER) were playing the game. But it was slightly different from the main game. In our game we were N people trying to throw balls into M identical Baskets. At each turn we all were selecting a basket and trying to throw a ball into it. After the game we saw exactly S balls were successful. Now you will be given the value of N and M. For each player probability of throwing a ball into any basket successfully is P. Assume that there are infinitely many balls and the probability of choosing a basket by any player is 1/M. If multiple people choose a common basket and throw their ball, you can assume that their balls will not conflict, and the probability remains same for getting inside a basket. You have to find the expected number of balls entered into the baskets after K turns.
Input
Input starts with an integer T (≤ 100), denoting the number of test cases.
Each case starts with a line containing three integers N (1 ≤ N ≤ 16), M (1 ≤ M ≤ 100) and K (0 ≤ K ≤ 100) and a real number P (0 ≤ P ≤ 1). P contains at most three places after the decimal point.
Output
For each case, print the case number and the expected number of balls. Errors less than 10-6 will be ignored.
Sample Input
Output for Sample Input
2
1 1 1 0.5
1 1 2 0.5
Case 1: 0.5
Case 2: 1.000000
Problem Setter: Muhammad Rifayat Samee
Special Thanks: Jane Alam Jan
首先我們要知道每一次扔的時候,0個人扔進的概率,1個人扔進的概率….
由於最後不關心M個籃子裡球的具體情況,所以M其實沒有什麼用
只要區分扔不扔進去,至於扔到哪個籃子不管
dp[i][j]表示到第i輪,籃子裡有j個球的概率
最後答案就是
/*************************************************************************
> File Name: L.cpp
> Author: ALex
> Mail: [email protected]
> Created Time: 2015年05月17日 星期日 16時05分37秒
************************************************************************/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include