Cf 354B

 

#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
double a[15][15];
int vis[15][15];
int ans;
int N,M;
void f(int n,int m,double t,double v){
    if(!t) return;
    else{
        double rt = (20-a[n][m])/v;
        if(t>=rt){
            a[n][m]+=v*rt;
            if(!vis[n][m]){
                ans+=1;
                vis[n][m]=1;
            }
            if(n == N) return;
            f(n+1,m,t-rt,v/2);
            f(n+1,m+1,t-rt,v/2);
        }
        else{
            a[n][m]+=v*t;
        }
    }
}
int main(){
    while(scanf("%d %d",&N,&M)==2){
        memset(a,0,sizeof(a));
        memset(vis,0,sizeof(vis));
        ans=0;
        f(1,1,M,20);
        printf("%d\n",ans);
    }
    return 0;
}

 

 

 

posted on 2016-05-26 14:16  Lxyan  阅读(188)  评论(0)    收藏  举报

导航