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

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

    DP,“数塔”

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 int a[56][56];
     5 long long dp[56][56];
     6 
     7 long long gcd(long long x, long long y)
     8 {
     9     return y? gcd(y, x%y): x;
    10 }
    11 
    12 
    13 int main()
    14 {
    15     int i, j, k, n, m;
    16     long long r;
    17     char s[1234] = "\0";
    18     memset(dp, 0, sizeof(dp));
    19     scanf("%d%d%*c", &n, &m);
    20     for(i=1; i<=n; i++)
    21     {
    22         gets(s);
    23         k = 1;
    24         for(j=0; s[j]; j++)
    25         {
    26             if(s[j]=='*')
    27             {
    28                 a[i][k] = 1;
    29                 k ++;
    30                 continue;
    31             }
    32             if(s[j]=='.')
    33             {
    34                 a[i][k] = 0;
    35                 k ++;
    36                 continue;
    37             }
    38         }
    39     }
    40     dp[1][1] = (long long)1<<56;
    41     //printf("%lld\n", dp[1][1]);
    42     for(i=1; i<=n; i++)
    43     {
    44         for(j=1; j<=i; j++)
    45         {
    46             if(a[i][j])
    47             {
    48                 dp[i+1][j] += (dp[i][j]>>1);
    49                 dp[i+1][j+1] += (dp[i][j]>>1);
    50             }
    51             else
    52             {
    53                 dp[i+2][j+1] += dp[i][j];
    54             }
    55             //printf("%lld ", dp[i][j]);
    56         }
    57         //printf("\n");
    58     }
    59     r = dp[i][m+1];
    60     if(r == 0)
    61     {
    62         printf("0/1\n");
    63         return 0;
    64     }
    65     if(gcd(dp[1][1], r)==1)
    66     {
    67         printf("%lld\n", r);
    68         return 0;
    69     }
    70     printf("%lld/%lld\n", (long long)r/gcd(dp[1][1], r), (long long)dp[1][1]/gcd(dp[1][1], r));
    71     return 0;
    72 }
  • 相关阅读:
    InApp PurchaseVerifying Store Receipts[6]
    InApp PurchaseTesting a Store [7]
    App Store Review Guidelines
    JAVA基础之一维数组和多维数组
    定位标记
    JSTL常用标签汇总
    struts1.2原理
    struts1.2中的ActionForm
    jdbc连接
    ActionForm与bean的区别
  • 原文地址:https://www.cnblogs.com/yuan1991/p/pku1189.html
Copyright © 2011-2022 走看看