NYOJ 372 巧克力 (动态规划)
来源:互联网 发布:pdf.js使用教程 编辑:程序博客网 时间:2024/04/29 17:10
题目描述
http://acm.nyist.net/JudgeOnline/problem.php?pid=372
布欧可以把人变成巧克力吃了来增加他的能量,也有可能减少。
现在布欧变了n*m个巧克力,并把巧克力排成一个n*m的矩形,现在布欧想选择一个子矩形,把这个子矩形吃了来增加他的能量,可他不知道选哪个才能使他的能量增加值p最大,布欧也可以选择一个都不吃,这样p= 0。
现在布欧要你告诉他p的最大值,不然他就先把你变成巧克力吃了!
- 输入
- 第一行:一个整数T 代表测试个数,
接着T组测试数据。
对每组测试数据:
第一行:n m 两个整数
接着n行每行m个空格隔开的整数a(i,j)代表对应巧克力的能量值(注意可以是负数,吃了能量减少)
1<=n,m<=300
-1000<= a(i,j) <= 1000 - 输出
- T行
每行一个整数 p - 样例输入
33 31 -1 42 -2 33 -10 13 3-1 -1 -1-1 -1 -1-1 -1 -13 31 1 -10-1 1 -101 1 -10
- 样例输出
804
题目分析:
经典题目,最大子矩阵,即最大子序列的变形,和poj1050、相同,建议先做最大子序列的和,然后将矩阵压塑成序列进行求最大和即可。
AC代码:
/** *@xiaoran *动态规划最大子序列的和的变形 */#include<iostream>#include<cstdio>#include<map>#include<cstring>#include<string>#include<algorithm>#include<queue>#include<vector>#include<stack>#include<cstdlib>#include<cctype>#include<cmath>#define LL long longusing namespace std;int a[303][303];int b[303],sum[303];int main(){ int t,n,m; scanf("%d",&t); while(t--){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ scanf("%d",&a[i][j]); } } int max=0; for(int i=1;i<=n;i++){ memset(sum,0,sizeof(sum)); memset(b,0,sizeof(b)); for(int k=i;k<=n;k++){//从第i行开始。遍历行的所有组合 for(int j=1;j<=m;j++){ b[j]+=a[k][j]; if(sum[j-1]>=0){ sum[j]=sum[j-1]+b[j]; } else sum[j]=b[j]; if(max<sum[j]) max=sum[j]; } } } printf("%d\n",max); }return 0;}
0 0
- NYOJ 372 巧克力 (动态规划)
- NYoj 372 巧克力[经典动态规划2]
- nyoj 372巧克力
- NYOJ 372 巧克力
- NYOJ 动态规划
- NYOJ 苹果【动态规划】
- 动态规划,记忆化搜索(分享巧克力,LA 4794)
- NYOJ 236 VF (动态规划)
- NYOJ 201 作业题 动态规划
- NYOJ 18 动态规划入门
- NYOJ 吃土豆(动态规划)
- NYOJ 01串(动态规划)
- NYOJ 195飞翔(动态规划)
- NYOJ 整理图书(动态规划)
- NYOJ—飞翔【动态规划】
- nyoj-195 飞翔【动态规划】
- nyoj 269 VF ( 动态规划)
- NYOJ 370 波动序列 dp 动态规划
- 2014校园招聘总结
- 哪里有电话吸费 手机吸费平台 小投资高回报
- 06-1. Saving James Bond - Hard Version (30) BFS
- js获取KindEditor body里面的值
- LeetCode---Add Two Numbers
- NYOJ 372 巧克力 (动态规划)
- leetcode---------------Two Sum
- POJ-1240(分治,递归降解)
- android学习二十二(使用SAX解析xml)
- poi 20141221 操作EXCEL2007报错 javax.xml.stream.XMLEventFactory.newFactory()
- poj 2627 Gopher and hawks 最短路
- 防御性编码有助于快速定位问题
- IP core使用时的注意点
- 04-2. 打印九九口诀表(15)