hdu 5159確率
各カードが出現する確率は同じであるため、b回このカードが出現する確率を1-pow(x-1/x,b)とし、相補性を利用して、このカードが出現しない確率を探し出し、さらにその出現確率を算出し、接頭辞と確率を乗じて得ることが望ましい
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>
#define MAX 100007
using namespace std;
long long sum[MAX];
int main ( )
{
sum[0] = 0;
for ( int i = 1 ; i <= 100000 ; i++ )
sum[i] = sum[i-1] + i;
int t,x,b;
int c = 1;
scanf ( "%d" , &t );
while ( t-- )
{
scanf ( "%d%d" , &x , &b );
double p = 1.0 - pow ( (x-1)*1.0/(x*1.0) , b*1.0 );
printf ( "Case #%d: " , c++ );
printf ( "%.3f
" , sum[x]*1.0*p );
}
}