博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P2706 巧克力
阅读量:5291 次
发布时间:2019-06-14

本文共 1090 字,大约阅读时间需要 3 分钟。

题目背景

王7的生日到了,他的弟弟准备送他巧克力。

题目描述

有一个被分成n*m格的巧克力盒,在(i,j)的位置上有a[i,j]块巧克力。就在送出它的前一天晚上,有老鼠夜袭巧克力盒,某些位置上被洗劫并且穿了洞。所以,你——王7的弟弟王9,必须从这个满目苍夷的盒子中切割出一个矩形巧克力盒,其中不能有被老鼠洗劫过的格子且使这个盒子里的巧克力尽量多。

输入格式

第一行有两个整数 n、m。第 i+1行的第 j 个数表示a[ i , j ]。如果这个数为 0 ,则表示这个位置的格子被洗劫过。

输出格式

输出最大巧克力数。

输入输出样例

输入 #1复制
3 41 2 3 45 0 6 310 3 4 0
输出 #1复制
17//10 3 4这个矩形的巧克力数最大

说明/提示

1≤n,m≤300

0≤a[i,j]≤255

 

 

#include 
#include
#include
#include
#include
#include
using namespace std;long long ans,n,m;long long s[310],map[310][310],up[310][310];int main(){ scanf("%lld%lld",&n,&m); for(int i=1;i<=n;++i){ for(int j=1;j<=m;++j){ scanf("%lld",&map[i][j]); if(!map[i][j]){ map[i][j]=-1<<25; } up[i][j]=up[i-1][j]+map[i][j]; } } for(int i=1;i<=n;++i){ for(int j=i;j<=n;++j){ long long mi=0; for(int k=1;k<=m;++k){ s[k]=s[k-1]+up[j][k]-up[i-1][k]; } for(int k=1;k<=m;++k){ ans=max(ans,s[k]-mi); mi=min(s[k],mi); } } } printf("%lld",ans); return 0;}

  

转载于:https://www.cnblogs.com/xiongchongwen/p/11470630.html

你可能感兴趣的文章
右侧导航栏(动态添加数据到list)
查看>>
81、iOS本地推送与远程推送详解
查看>>
C#基础_注释和VS常用快捷键(一)
查看>>
虚拟DOM
查看>>
uva 11468 Substring
查看>>
自建数据源(RSO2)、及数据源增强
查看>>
BootStrap2学习日记2--将固定布局换成响应式布局
查看>>
关于View控件中的Context选择
查看>>
2018icpc徐州OnlineA Hard to prepare
查看>>
R语言-rnorm函数
查看>>
Spark的启动进程详解
查看>>
Java 字符终端上获取输入三种方式
查看>>
javascript 简单工厂
查看>>
java调用oracle存储过程,返回结果集
查看>>
使用命令创建数据库和表
查看>>
数据库的高级查询
查看>>
HttpClient(一)-- HelloWorld
查看>>
dump调试函数
查看>>
Android 利用Sharp样式设置文本框EditText圆角形状
查看>>
[YTU]_2443 ( C++习题 复数类--重载运算符3+)
查看>>