zoukankan      html  css  js  c++  java
  • POJ 1189 钉子和小球

    http://poj.org/problem?id=1189

    设经过位置(ij)的小球个数为P(i, j),那么落入格子m的小球个数为p(n+1, m),那么概率就是p(n+1,m)/2^n

    假设位置(i,j)有铁钉,那么各有p(i, j)/2个小球落入位置(i+1, j)和位置(i+1, j+1);否则球全部落入(i+2, j+1)的位置。

    代码如下:

    View Code
    /*
    
    POJ 1189钉子和球
    
    */ 
    
    #include<stdio.h>
    
    #include<string.h>
    
    #include<iostream>
    
    using namespace std;
    
    long long powx(int x)
    
    {
    
         int i;
    
         long long pp=1;
    
         for(i=1; i<=x; i++)
    
            pp*=2;
    
         return pp;
    
    }
    
    int main()
    
    {
    
        int i, j, n, m;
    
        long long f[55][55];
    
        char ch[52][52];
    
        while(cin>>n>>m)
    
        {
    
            memset(f, 0, sizeof(f));
    
            for(i=1; i<=n; i++)
    
                for(j=0; j<i; j++)
    
                    cin>>ch[i][j];
    
            f[1][0]=powx(n);
    
            long long nn=f[1][0];
    
            for(i=1; i<=n; i++)
    
                for(j=0; j<=i-1; j++)
    
                {
    
                    if(ch[i][j]=='*')
    
                    {
    
                        f[i+1][j]+=f[i][j]/2;
    
                        f[i+1][j+1]+=f[i][j]/2;
    
                    }
    
                    else
    
                        f[i+2][j+1]+=f[i][j];
    
                }
    
            while(f[n+1][m]%2==0)
    
            {
    
                nn/=2;
    
                f[n+1][m]/=2;
    
            }
    
            printf("%lld/%lld\n", f[n+1][m], nn);
    
        }
    
        return 0;
    
    }
  • 相关阅读:
    Perl 杂记
    Block abstraction view(Create & Reference)
    sed & awk
    multi-voltage design apr
    APR Recipe
    IN2REG group 的时序分析
    关于 clock tree
    ICC Stage Flow
    ocv & derate & crpr
    clock gating check
  • 原文地址:https://www.cnblogs.com/Hilda/p/2939701.html
Copyright © 2011-2022 走看看