15 Mar 2013

Random decreasing function_SOLVED

/*

CODECHEF
PROBLEM CODE : RDF

*/

#include <stdio.h>

inline int getn() 
{
  int n=0, c=getchar_unlocked();
  while(c < '0' || c > '9') 
      c = getchar_unlocked();
  while(c >= '0' && c <= '9')
      n = (n<<3) + (n<<1) + c - '0', c = getchar_unlocked();
  return n;
}

double a[100001][31] = {{0}};

int main()
{
int T = getn(), N, K, i,j;
a[2][1] = 0.5, a[3][1] = 1.0, a[3][2] = 1.0/6.0;
 
for(i = 4; i < 100001; i++) 
{
  for(j = 1; j <= 30 && j < i; j++)
   {
    if(j == 1) 
      a[i][j] = a[i-1][j] + 0.5;
    else a[i][j] = (a[i-1][j-1] + a[i-1][j]*(i-1))/(double)i;
    if(a[i][j] <= 1.0/500000.0) 
      break;
   }
}
while(T--)
 {
   N = getn(), K = getn();
   if(!K) 
     printf("%d\n",N);
   else if(K <= 30 && N > K) 
    printf("%.7lf\n",a[N][K]);
   else 
    printf("0\n");
  } 

return 0;
}

Categories: , , ,

Related Posts:

  • Money Transformation_solved /* CODECHEF PROBLEM CODE : MONTRANS */ #include<stdio.h>   int T,a,b,c; void solve() { int step=0,cnt=0; int m=a*100+b; while((a>0||b>=c)&&cnt<10000){ cnt++; … Read More
  • Random decreasing function_SOLVED /* CODECHEF PROBLEM CODE : RDF */ #include <stdio.h> inline int getn()  {   int n=0, c=getchar_unlocked();   while(c < '0' || c > '9')        c = getchar_unlocke… Read More
  • Multiply Matrix /* program to multiply two matrices... */ #include<iostream.h>#include<conio.h>  void main(){  clrscr();int x[50][50],y[50][50],z[50][50],i,j,k,a,b,c,d,e,f,g,h;  cout<<"Enter the rows an… Read More
  • Chef Teams_solved /* CODECHEF PROBLEM CODE : CTEAMS */  #include <stdio.h> #include <math.h> #define tausch(a,b) b=a+b, a=b-a, b=b-a int X[100100][5]; void f3(int i) { int l=2*i, r=2*i+1, z=i; z=(l<=X[2][4… Read More
  • Jurassic Park_solved /* CODECHEF Problem code: NI01 */ #include<stdio.h> #include<stdlib.h> int n[100002]; int main() { int t,p,r,k,i,m,q,l,c; scanf("%d",&t); while(t--)  { scanf("%d%d%d%d%d%d",&… Read More

0 comments:

Post a Comment

Copyright © 2025 UPgradeCODING | Powered by Blogger