poj 1189 钉子和小球
来源:互联网 发布:苹果电脑 mac地址 编辑:程序博客网 时间:2024/06/11 18:55
一道比较基础的动态规划,首先记录输入的数据,就是钉子的位置,在用一个同样大小的数组记录概率,由于概率分母是固定的2的n次方,所以只用记录分子,遇到钉子,就把值原样传给下面两个,没有钉子就直接掉两层,概率不变,所以掉两层要乘4。最后约分并输出。值得注意的是他的输入,样例给的乱七八糟,所以就要判断输入字符的合法性。
50组数据,2的50次方,长整型装的下。
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int main(){ __int64 i,j,n,m; char c[55][55]; __int64 dp[55][55]; scanf("%I64d%I64d",&n,&m); for(i=1; i<=n; i++) { for(j=1; j<=i; j++) while(scanf("%c",&c[i][j])&&c[i][j]!='.'&&c[i][j]!='*') { ; } } memset(dp,0,sizeof(dp)); dp[1][1]=1; for(i=1; i<=n; i++) { for(j=1; j<=i; j++) { if(c[i][j]=='*') { dp[i+1][j]+=dp[i][j]; dp[i+1][j+1]+=dp[i][j]; } else dp[i+2][j+1]=dp[i][j]*4; } } j=1; for(i=0; i<n; i++) j=j<<1; i=dp[n+1][m+1]; if(i==0) { printf("0/1\n"); return 0; } while(i%2==0) { i/=2; j/=2; } printf("%I64d/%I64d\n",i,j); return 0;}
0 0
- poj 1189 钉子和小球
- poj 1189 钉子和小球
- POJ 1189 钉子和小球
- POJ 1189 钉子和小球
- POJ 1189 钉子和小球
- POJ 1189 钉子和小球
- poj 1189 钉子和小球
- poj 1189 钉子和小球
- poj 1189 钉子和小球
- POJ 1189 钉子和小球
- POJ 1189 钉子和小球 (DP)
- poj 1189 钉子和小球 DP
- POJ 1189 钉子和小球 [dp]
- POJ 1189 钉子和小球 (DP)
- POJ 1189 钉子和小球 思路+疑惑
- poj 1189 dp(钉子和小球)
- POJ 1189-钉子和小球(DP)
- POJ 1189 钉子和小球 中文
- 禁止cookie,session还能继续作用
- 字节,字符及占用内存大小情况
- 基于STM32的rosserial_client的节点开发
- 创建淘宝网店
- matplotlib 字体改为 Times New Roman
- poj 1189 钉子和小球
- Android ListView 按字母排序要求每个拼音内部子类按字母在上,汉字在下再排序
- Linux(Centos 7)安装JDK并配置环境变量
- Android中使用am命令实现在命令行启动程序详解
- maven 用指令启动jetty或tomcat需要做的步骤
- MYSQL 双向配置
- 多层嵌套json解析与构建|vuejs初探
- KNN算法工作原理及实现
- 【敏捷】创业公司如何实施敏捷开发