CDOJ 1638 Easy Problem
来源:互联网 发布:apu安装ubuntu 编辑:程序博客网 时间:2024/06/07 03:25
Problem:http://www.acm.uestc.edu.cn/problem.php?pid=1638
用一个二维数组表示到达某曾某个楼梯口所用的时间,然后从底层向高层DP即可。对每个左边的楼梯口,上到更高一层后,可以送完所有物品后回到左边,或者直接去到右边。
#include <cstdio>int dp[101][2];char floo[101];int end[101][2];int main(){int T, n, m, top, tmp;scanf("%d", &T);for(int cases=1; cases<=T; ++cases){scanf("%d%d", &n, &m);for(int i=1; i<=n; ++i){scanf("%s", floo);end[i][0] = m-1;end[i][1] = 0;for(int j=1; j<m-1; ++j){if(floo[j] == '*'){if(j > end[i][1])end[i][1] = j;if(j < end[i][0])end[i][0] = j;}}}if(m < 3){printf("Case #%d: %d\n", cases, n-1);continue;}for(top = n; top>=1; --top){if(end[top][0] == m-1)continue;else break;}if(top == 0) {printf("Case #%d: %d\n", cases, n-1);continue;}dp[0][0] = dp[0][1] = -1;for(int i=1; i<=top; ++i){dp[i][0] = dp[i][1] = 0x0fffffff;if(end[i][0] != m-1){tmp = dp[i-1][0]+1+2*end[i][1];if(tmp < dp[i][0])dp[i][0] = tmp;tmp = dp[i-1][0]+m;if(tmp < dp[i][1])dp[i][1] = tmp;tmp = dp[i-1][1]+1+2*(m-1-end[i][0]);if(tmp < dp[i][1])dp[i][1] = tmp;tmp = dp[i-1][1]+m;if(tmp < dp[i][0])dp[i][0] = tmp;}else{tmp = dp[i-1][0]+1;if(tmp < dp[i][0])dp[i][0] = tmp;tmp = dp[i-1][0]+m;if(tmp < dp[i][1])dp[i][1] = tmp;tmp = dp[i-1][1]+1;if(tmp < dp[i][1])dp[i][1] = tmp;tmp = dp[i-1][1]+m;if(tmp < dp[i][0])dp[i][0] = tmp;}}int ans = (dp[top][0]<dp[top][1]?dp[top][0]:dp[top][1]);if(top < n) ans += (n-top); printf("Case #%d: %d\n", cases, ans);}return 0;}
- CDOJ 1638 Easy Problem
- CDOJ 1300 Easy Problem
- easy problem
- cdoj 483 Data Structure Problem DFS
- SetType,a easy problem
- An Easy Problem
- 2055 An easy problem
- An Easy Problem!
- An Easy Problem!
- Easy Problem(cdOJ1644)
- 【模拟】Another Easy Problem
- FZU_1753 Another Easy Problem
- fzu1753 Another Easy Problem
- poj2826 An Easy Problem?!
- A problem is easy
- 三分法Easy Problem
- HDOJ2055 An easy problem
- 23:Easy problem
- 程序员技术练级攻略&写给新手程序员的一封信
- 工作中的一个小问题
- 一网打尽当下NoSQL类型、适用场景及使用公司
- 类型转换导致的程序异常
- 使用vs2008编译调试apache源码
- CDOJ 1638 Easy Problem
- 暑假了,不要让孩子患上网瘾
- 加班与效率
- itextsharp 生成 pdf 文字之显示不出 。不兼容 解决办法
- 将red5项目部署到tomcat下,并且red5项目嵌入到J2EE项目中
- android自定义dialog中点击listview的item事件关闭dialog
- Linux X Window学习
- iOS/调试器和程序崩溃时的一些处理方法
- 什么是透明数据加密(TDE)?