题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1081

题目大意:给你一个n*n的二维数组, 让你求一个子矩阵, 要求输出和最大的是多少?

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <algorithm>
 5 #include <cstdlib>
 6 #include <cmath>
 7 #include <set>
 8 #include <map>
 9 #include <vector>
10 using namespace std;
11
12 int a[110][110], c[110][110], n;//c[i][j] 表示第 i 行前 j 个数的和
13 int main()
14 {
15     while(~scanf("%d", &n))
16     {
17         memset(c, 0, sizeof(c));
18         for(int i = 1; i <= n; i++){
19             int m = 0;
20             for(int j = 1; j <= n; j++){
21                 scanf("%d", &a[i][j]);
22                 m += a[i][j];
23                 c[i][j] = m;
24             }
25         }
26         int MAX = a[1][1];
27         for(int i = 1; i <= n; i++)
28         {
29             for(int j = i; j <= n; j++)// 把每行的c[1][j] - c[1][i] 当成一个数, 竖着看, 为一列数, 求这列数的最大连续子序列
30             {
31                 int m = 0;
32                 for(int k = 1; k <= n; k++)
33                 {
34                     m += c[k][j] - c[k][i - 1];
35                     if(m > MAX)
36                         MAX = m;
37                     if(m < 0)//当小于0时,m重新赋值
38                         m = 0;
39                 }
40             }
41         }
42         printf("%d\n", MAX);
43     }
44     return 0;
45 }

转载于:https://www.cnblogs.com/luomi/p/5510348.html

杭电1081_二维dp相关推荐

  1. 2020 年百度之星·程序设计大赛 - 初赛一 Dec 二维DP,预处理

    problem Dec Accepts: 1284 Submissions: 4572 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 327 ...

  2. Efficient Exchange DP 二维DP

    YouhaverecentlyacquiredanewjobattheBankforAcquiring Peculiar Currencies. Here people can make paymen ...

  3. CDOJ 1347柱爷的矩阵(二维dp)

    柱爷的矩阵 Time Limit: 125/125MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  Stat ...

  4. P2380 狗哥采矿 (二维dp)

    原题链接:狗哥采矿 - 洛谷 思路:我一开始想的是,一个点往左走还是往上走与 它上面和左边的点走的方向有关系,但是感觉复杂交错.....然后看到了大佬的二维dp,其实Aij往左走,就让它左边的这一条都 ...

  5. P1719 最大加权矩形(二维dp)

    P1719 最大加权矩形(二维dp) 原题戳这里 题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑 ...

  6. HDU-1493 QQpet exploratory park(概率+二维dp)

    第一次做dp 题目 扔骰子,给出扔出每个点的概率,求出到达特定点的概率是多少..这里所有特定点的和并不是100%,每个特定点的计算是将每一次(共十次)经过它的概率都加起来求和.得到100%的情况是将每 ...

  7. 信息学奥赛一本通1267:【例9.11】01背包问题(二维dp与滚动数组优化)

    [题目描述] 一个旅行者有一个最多能装 MM 公斤的背包,现在有 nn 件物品,它们的重量分别是W1,W2,...,WnW1,W2,...,Wn,它们的价值分别为C1,C2,...,CnC1,C2,. ...

  8. BZOJ 2748: [HAOI2012]音量调节【二维dp,枚举】

    2748: [HAOI2012]音量调节 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 2010  Solved: 1260 [Submit][Sta ...

  9. 杭电2391--Filthy Rich(DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2391 题目意思:在一个n*m的矩阵中,不同的位置有不同重量的黄金,从矩阵的左上角开始,到右下角,只能向 ...

  10. Java二维数组谷电,java二维数组遍历的2种代码

    二维数组遍历: 思想: 1.先将二维数组中所有的元素拿到 2.再将二维数组中每个元素进行遍历,相当于就是在遍历一个一维数组 第一种方法:双重for循环 //遍历二维数组 public class Tr ...

最新文章

  1. 使用技巧_信用卡的使用技巧
  2. python中的reduce、lambda函数
  3. libevent入门
  4. 小波变换理解:消失矩、支撑长度的理解
  5. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车黑线循迹红外避障综合实验
  6. 图书管理系统python语言-Python简易版图书管理系统
  7. STM32 应用程序加密的一种设计方案
  8. Linux内核之数据双链表
  9. 【luogu1018】 乘积最大 [区间dp+高精][noip2000]
  10. HTML中的一般标签、常用标签和表格
  11. unity 裙子摆动_Unity中实现MMD效果
  12. 语文音乐计算机的英语怎么读,音乐英语怎么读
  13. 加密经济学应用的机制设计
  14. 如何设置快速启动栏 win7 快速启动栏 快速启动栏不见了.
  15. freemarker 生成word,支持循环导出图片 WPS版本
  16. 干货分享 | 全文 40000 字,最强(全) Matplotlib 实操指南
  17. 【笔记】创新思维工作坊(一)
  18. 不习惯的 Vue3 起步六 の Echarts绘制下钻地图
  19. Java基础 —— 编程入门
  20. java set%3c %3e哈希,敏捷开发实施方案.PPT

热门文章

  1. TCP/IP协议栈的封装
  2. 谷歌Chrome浏览器 v0.2.149.27 Beta 提供下载
  3. Qt5学习笔记之图标下载和转换
  4. HDU 5514 欧拉函数应用
  5. RuntimeException
  6. Algo: Basic
  7. JDK中ThreadDump诊断Java代码中的线程死锁问题
  8. 日志解析LogParse启动参数配置
  9. 【.NET】Linq几样特点
  10. Sphinx的配置和使用