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 }
转载于:https://www.cnblogs.com/yuan1991/archive/2013/01/20/pku1189.html
pku1189 钉子和小球相关推荐
- noi99钉子和小球 解题报告
题目叙述 钉子和小球 Time Limit: 1000MS Memory Limit: 10000K 题目描述 有一个三角形木板,竖直立放,上面钉着n(n + 1) / 2颗钉子,还有(n + 1)个 ...
- [Noi1999]钉子和小球
Description Input 第1行为整数n(2<=n<=50)和m(0<=m<=n).以下n行依次为木板上从上至下n行钉子的信息,每行中'*'表示钉子还在,'.'表示钉 ...
- BZOJ 1867 [Noi1999]钉子和小球 DP
想状态和钉子的位置如何匹配想了半天...后来发现不是一样的吗$qwq$ 思路:当然是$DP$啦 提交:>5次(以为无故$RE$,实则是先乘后除爆了$long\space long$) 题解: 若 ...
- POJ 1189 钉子和小球
题目链接:http://poj.org/problem?id=1189 dp 可以知道一共有2^n条路径,则设顶点有2^n个球,若当前为'*'则向左右的球各有一半:若为'.',则球全部掉入正下方. 1 ...
- POJ 1189 记忆化搜索
钉子和小球 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 7218 Accepted: 2164 Description ...
- 【转】别人整理的DP大全
为什么80%的码农都做不了架构师?>>> 动态规划 动态规划 容易: 1018 , 1050 , 1083 , 1088 , 1125 , 1143 , 1157 , 1163 ...
- 2019.5.summary
2019.5.1 CF C. Prefix Sum Primes 感觉CF就是训练妳如何养成对题目强大的YY能力的QAQ 我们构造 如果只有一种,没辙,只能这样放 否则先放一个2,再放一个1 接下来把 ...
- linux使用指定网卡ping,LINUX ping 指定网卡
iOS homekit使用说明 本文由CocoaChina翻译组成员iBenjamin_Go和浅夏@旧时光翻译自苹果开发文档:HomeKit Developer Guide,敬请勘误. 本文档内容包括 ...
- 清北学堂2019.8.9
Day 4 上午 赵和旭 概率 某个事件A发生的可能性的大小,称之为事件A的概率,记作P(A). 假设某事的所有可能结果有n种,每种结果都是等概率,事件A涵盖其中的m种,那么P(A)=m/n. 例如投 ...
最新文章
- networkx 有向图强连通_leetcode刷题(四):搜索(深度优先搜索,广度优先搜索)拓扑排序,强连通分量...
- parser.add_argument 参数用法 包含metavar
- 中国学者用人工光感受器助失明小鼠复明
- Python中列表的copy方法
- iOS自动偏移64个像素
- 人生,不过是停下在走
- SAP Data Intelligence Graph json源代码的结构分析
- 行为类模式(二):命令(Command)
- android图片浏览功能,怎么在Android应用中实现一个网页图片浏览功能
- vue.js更改颜色_如何使用Vue.js实现简单的标题更改应用程序
- Fedora 8安装非官方compiz-fusion
- java开启一个线程_【jdk源码分析】java多线程开启的三种方式
- Atitit.request http乱码的设计防止 检测与解决最近实践p825 attilax总结.doc
- UDP 协议报文格式
- 修改 idea 主题
- 【大数据分析】Spark介绍
- python如何下载包_怎么在python中下载包
- 分享塑胶模具设计思路与流程,建议收藏!
- 完全用 GNU/Linux 工作(转)
- foxmail中导入网易邮箱联系人方法
热门文章
- django的模板系统过滤器笔记
- day08面向对象+
- mybatis报错(三)报错Result Maps collection does not contain value for java.lang.Integer解决方法...
- 录音整理文字工具otranscribe简介
- listview当选中某一个item时设置背景色其他的不变
- 2014 Red Hat Summit(红帽峰会)PPT合集
- ospf多区域路由实验
- Revit API多选多重过滤
- java获取标准输出到文件_IO java标准输入与输出
- 长时间使用s档有危害吗_空调长时间不清洗竟有这么多危害 你知道吗?