洛谷P2706 巧克力
题目背景
王7的生日到了,他的弟弟准备送他巧克力。
题目描述
有一个被分成n*m格的巧克力盒,在(i,j)的位置上有a[i,j]块巧克力。就在送出它的前一天晚上,有老鼠夜袭巧克力盒,某些位置上被洗劫并且穿了洞。所以,你——王7的弟弟王9,必须从这个满目苍夷的盒子中切割出一个矩形巧克力盒,其中不能有被老鼠洗劫过的格子且使这个盒子里的巧克力尽量多。
输入输出格式
输入格式:
第一行有两个整数 n、m。第 i+1行的第 j 个数表示a[ i , j ]。如果这个数为 0 ,则表示这个位置的格子被洗劫过。
输出格式:
输出最大巧克力数。
输入输出样例
3 4
1 2 3 4
5 0 6 3
10 3 4 0
17
//10 3 4这个矩形的巧克力数最大
说明
1≤n,m≤300
0≤a[i,j]≤255
题目大意:求不含0的最大子矩形的权值和
题解:
二维前缀和暴力50
#include<iostream>
#include<cstdio>
#include<cstring>
#define inf 100000000
using namespace std; int ans,n,m,map[][],sum[][]; int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
scanf("%d",&map[i][j]);
if(!map[i][j])map[i][j]=-inf;
}
}
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
sum[i][j]=sum[i-][j]+sum[i][j-]-sum[i-][j-]+map[i][j];
}
}
for(register int i=;i<=n;i++){
for(int j=;j<=m;j++){
for(register int chang=;chang+j-<=m;chang++){
for(int kuan=;kuan+i-<=n;kuan++){
int x=i+kuan-,y=j+chang-;
int gg=sum[x][y]-sum[i-][y]-sum[x][j-]+sum[i-][j-];
if(gg>ans)ans=gg;
}
}
}
}
printf("%d\n",ans);
return ;
}
正解:预处理每列的前缀和 然后枚举子矩形的上下边界 更新答案
#include<iostream>
#include<cstdio>
#include<cstring>
#define inf 1000000
using namespace std; int ans,n,m,sum[][]; int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
scanf("%d",&sum[i][j]);
if(!sum[i][j])sum[i][j]=-inf;
sum[i][j]+=sum[i-][j];
}
}
for(int tu=;tu<n;tu++){
for(int dn=tu+;dn<=n;dn++){
int cnt=;
for(int i=;i<=m;i++){
if(cnt<)cnt=sum[dn][i]-sum[tu][i];
else cnt+=sum[dn][i]-sum[tu][i];
ans=max(ans,cnt);
}
}
}
printf("%d\n",ans);
return ;
}
洛谷P2706 巧克力的更多相关文章
- 洛谷——P2706 巧克力
P2706 巧克力 题目背景 王7的生日到了,他的弟弟准备送他巧克力. 题目描述 有一个被分成n*m格的巧克力盒,在(i,j)的位置上有a[i,j]块巧克力.就在送出它的前一天晚上,有老鼠夜袭巧克力盒 ...
- 洛谷P4475 巧克力王国
洛谷P4475 巧克力王国 题目描述 巧克力王国里的巧克力都是由牛奶和可可做成的. 但是并不是每一块巧克力都受王国人民的欢迎,因为大家都不喜欢过于甜的巧克力. 对于每一块巧克力,我们设 x 和 y 为 ...
- 洛谷 P4475 巧克力王国 解题报告
P4475 巧克力王国 题目描述 巧克力王国里的巧克力都是由牛奶和可可做成的.但是并不是每一块巧克力都受王国人民的欢迎,因为大家都不喜欢过于甜的巧克力. 对于每一块巧克力,我们设 \(x\) 和 \( ...
- 洛谷—— P2183 巧克力
https://www.luogu.org/problemnew/show/P2183 题目描述 佳佳邀请了M个同学到家里玩.为了招待客人,她需要将巧克力分给她的好朋友们.她有N(1<=N< ...
- [洛谷P2183]巧克力
题目大意:有n块巧克力,每块巧克力有一个大小.巧克力可以切成若干份.现在要你切成大小相等的m块,且尽可能大.求这个大小. 解题思路:我们二分巧克力切成的大小,然后计算能切成多少块,判断即可.由于最大的 ...
- 洛谷 P2183 巧克力
P2183 巧克力 题目描述 佳佳邀请了M个同学到家里玩.为了招待客人,她需要将巧克力分给她的好朋友们.她有N(1<=N<=5000)块巧克力,但是大小各不一样,第i块巧克力大小为为1*X ...
- 洛谷4475 巧克力王国(KD-Tree + 维护子树和)
(嘤嘤嘤 又是一个自闭了一晚上的题) qwq果然不是平面上的点的问题,也可以直接用KDTree打暴力 我们对于巧克力直接建kdtree 维护一个\(mx[i],mn[i]\) 但是有一个非常不友好的事 ...
- 洛谷 P7450 - [THUSCH2017] 巧克力(斯坦纳树+随机化)
洛谷题面传送门 9.13 补之前 8.23 做的题,不愧是鸽子 tzc( 首先我们先来探讨一下如果 \(c_{i,j}\le k\) 怎么做,先考虑第一问.显然一个连通块符合条件当且仅当它能够包含所有 ...
- 洛谷 P3802 小魔女帕琪 解题报告
P3802 小魔女帕琪 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从 ...
随机推荐
- android开发之网络棋牌类在线游戏开发心得(服务器端、Java) 好文章值得收藏
标签: android服务器 2013-10-09 17:28 3618人阅读 评论(0) 收藏 举报 分类: android(11) 转自:http://blog.csdn.net/bromon/a ...
- 【leetcode刷题笔记】Palindrome Partitioning II
Given a string s, partition s such that every substring of the partition is a palindrome. Return the ...
- 【leetcode刷题笔记】4Sum
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...
- Java基础面试集合
1.面向对象的特征有哪些方面? 抽象 封装 继承 多态,多态性是指允许不同子类型的对象对同一消息作出不同的响应.简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情.多态性分为编译时的多态性和 ...
- 解决Newtonsoft.Json版本问题
在配置文件中添加以下代码,App.config或Web.config <runtime> <assemblyBinding xmlns="urn:schemas-micro ...
- Kubernetes Resource Qoutas
配置参数: spec.containers[].resources.limits.cpu spec.containers[].resources.limits.memory spec.containe ...
- Linux嵌入式 -- 内核 - proc文件系统
1. 什么是proc文件系统? 实例:通过 /proc/meminfo,查询当前内存使用情况. 结论:proc文件系统是一种在用户态检查内核状态的机制. 2.Proc文件分类 特点 每个文件都规定了 ...
- Codeforces Round #367 (Div. 2) A , B , C
A. Beru-taxi time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- Delphi 的 Utf-8 转换
新版的 Delphi 應該不用這麼麻煩, 據說只要直接在 AnsiString, WideString, UTF8String 之間 assign 時就會自動幫你做轉換 (沒用過, 不知道是不是真的這 ...
- XML文件解析-DOM4J方式和SAX方式
最近遇到的工作内容都是和xml内容解析相关的. 1图片数据以base64编码的方式保存在xml的一个标签中,xml文件通过接口的方式发送给我,然后我去解析出图片数据,对图片进行进一步处理. 2.xml ...