hdu4791 Labyrinth
来源:互联网 发布:windows设备管理器在哪 编辑:程序博客网 时间:2024/05/18 01:31
动态规划,对于每列,分别从上到下,从下到上,计算两种情况产生的最大值,然后取最大值。
#include<iostream>using namespace std;int data[100][100];int tempLine[100];#define MAX(a,b) (a>b?a:b)int main(){int qNum;int NowNum = 0;int m, n, mi, ni;//m * ncin >> qNum;//有qNum个问题while (NowNum++<qNum){//NowNum就是Case数cin >> m >> n;//inputfor (mi = 0; mi < m; ++mi)for (ni = 0; ni < n; ++ni)scanf("%d",&data[mi][ni]);for (ni = 0; ni < n; ++ni){if (ni == 0){//初始化for (mi = 1; mi < m; ++mi)data[mi][ni] += data[mi - 1][ni];continue;}for (mi = m - 1; mi >= 0; --mi)tempLine[mi] = (mi == m - 1 ? data[mi][ni - 1] : MAX(tempLine[mi + 1], data[mi][ni - 1])) + data[mi][ni];//最后一个等于左侧,其他的是下侧和左侧最大值for (mi = 0; mi < m; ++mi)data[mi][ni] += (mi == 0 ? data[mi][ni - 1] : MAX(data[mi - 1][ni], data[mi][ni - 1]));//第一个等于左侧,其他的是上侧和左侧最大值for (mi = 0; mi < m; ++mi)data[mi][ni] = MAX(tempLine[mi], data[mi][ni]);}printf("Case #%d:\n%d\n", NowNum, data[0][n - 1]);//cout << "Case #" << NowNum << ":\n" << data[0][n - 1]<<'\n';}}
0 0
- hdu4791 Labyrinth
- Labyrinth
- Labyrinth
- Labyrinth
- Labyrinth
- hdu4791水题
- HDU4791【杂】
- HDU4791(线段树+二分)
- HDU4791->贪心&&二分优化
- hdu4791 Alice's Print Service
- HDU4791 Alice's Print Service
- ZOJ1536 Labyrinth
- 1033. Labyrinth
- poj1383 - Labyrinth
- poj1383:Labyrinth
- HDU | Labyrinth
- 【POJ1383】Labyrinth
- poj-【Labyrinth】
- 错误分析之ServletActionContext.getServletContext()标红
- Mac-PHPStorm_下载php7(php5)问题
- springMvc的异常处理
- Wireshark-protobuf编译小结
- 【JQuery】用JQuery来监听浏览器改变窗口大小事件
- hdu4791 Labyrinth
- Hive java编程提交查询语句和配置
- 窗体的生成
- SQL学习笔记8——查询到数据库的值为null在C#中如何判断
- DepthBinaryTree leetcode java python
- Hbase 学习笔记一 》starting from scrath
- Android USER 版本与ENG 版本的差异--MTK官方解释
- Qt 常用类 (8)—— QIcon
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)