Advertisement
yicongli

LG3830

Apr 6th, 2019
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.88 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define gc c=getchar()
  6. #define r(x) read(x)
  7. #define db double
  8.  
  9. template<typename T>
  10. inline void read(T&x){
  11.     x=0;T k=1;char gc;
  12.     while(!isdigit(c)){if(c=='-')k=-1;gc;}
  13.     while(isdigit(c)){x=x*10+c-'0';gc;}x*=k;
  14. }
  15.  
  16. const int N=105;
  17.  
  18. db f[N];
  19.  
  20. inline void solve1(int n){
  21.     for(int i=2;i<=n;++i){
  22.         f[i]=f[i-1]+2.0/i;
  23.     }
  24.     printf("%lf\n",f[n]);
  25. }
  26.  
  27. db g[N][N];
  28.  
  29. inline void solve2(int n){
  30.     for(int i=1;i<=n;++i){
  31.         g[i][0]=1;
  32.     }
  33.     for(int i=2;i<=n;++i){
  34.         for(int j=1;j<=i;++j){
  35.             for(int k=1;k<i;++k){
  36.                 g[i][j]+=g[k][j-1]+g[i-k][j-1]-g[k][j-1]*g[i-k][j-1];
  37.             }
  38.             g[i][j]/=(i-1);
  39.         }
  40.     }
  41.     db ans=0;
  42.     for(int i=1;i<=n;++i){
  43.         ans+=g[n][i];
  44.     }
  45.     printf("%lf\n",ans);
  46. }
  47.  
  48. int main(){
  49.     int q,n;r(q),r(n);
  50.     if(q==1)solve1(n);
  51.     else solve2(n);
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement