P2004 领地选择
P2004 领地选择
题目描述
作为在虚拟世界里统帅千军万马的领袖,小Z认为天时、地利、人和三者是缺一不可的,所以,谨慎地选择首都的位置对于小T来说是非常重要的。
首都被认为是一个占地C*C的正方形。小Z希望你寻找到一个合适的位置,使得首都所占领的位置的土地价值和最高。
输入输出格式
输入格式:
第1行:三个正整数N,M,C,表示地图的宽和长以及首都的边长。
第2∼N+1行:第i+1行包含M个整数,表示了地图上每个地块的价值。价值可能为负数。
输出格式:
一行,两个整数X、Y,表示首都左上角的坐标。
输入输出样例
说明
对于60%的数据:N、M≤50。
对于90%的数据:N、M≤300。
对于100%的数据:N、M≤1000,C≤min(N,M)。
这一题就是前缀和呀……为什么会被加到dp里呢?我们先来思考一下要求下图的黑色部分面积,该怎么求呢?

枚举右下的这个点,就是(i,j);
很显然,应该是非白色部分减去红、灰色部分再减去蓝灰色部分加上灰色部分(因为灰色被减了两次),那么,我们假设f[i][j]表示从1,1到i,j所有数字之和,那么从i-c,j-c到i,j的值就是
f[i][j]-f[i-c][j]-f[i][j-c]+f[i-c][j-c];
解到这里,O(mn)的代码就可以构出了,代码如下(别全抄代码,自己动动脑):
#include<iostream>
#include<cmath>
using namespace std;
int n,m,c,a[][],f[][],maxx=-0x7fffffff,x,y;
int main(){
cin>>m>>n>>c;
for(int i=;i<=m;i++)
for(int j=;j<=n;j++)
scanf("%d",&a[i][j]); //输入矩阵
for(int i=;i<=m;i++)
for(int j=;j<=n;j++)
f[i][j]=a[i][j]+f[i-][j]+f[i][j-]-f[i-][j-]; //求前缀和(f[i][j]表示1,1到i,j数字之和)
for(int i=c;i<=m;i++)
for(int j=c;j<=n;j++)
if(f[i][j]-f[i-c][j]-f[i][j-c]+f[i-c][j-c]>maxx){
maxx=f[i][j]-f[i-c][j]-f[i][j-c]+f[i-c][j-c]; //解释如上
x=i-c+;
y=j-c+;
}
cout<<x<<" "<<y;
}
P2004 领地选择的更多相关文章
- 洛谷 P2004 领地选择 题解
P2004 领地选择 题目描述 作为在虚拟世界里统帅千军万马的领袖,小Z认为天时.地利.人和三者是缺一不可的,所以,谨慎地选择首都的位置对于小T来说是非常重要的. 首都被认为是一个占地C*C的正方形. ...
- 二维前缀和模板题:P2004 领地选择
思路:就是使用二维前缀和的模板: 先放模板: #include<iostream> using namespace std; #define ll long long ; ll a[max ...
- 洛谷 P2004 领地选择
题目传送门 解题思路: 二维前缀和. AC代码: #include<iostream> #include<cstdio> using namespace std; ][],an ...
- Atitit 项目语言的选择 java c#.net php??
Atitit 项目语言的选择 java c#.net php?? 1.1. 编程语言与技术,应该使用开放式的目前流行的语言趋势1 1.2. 从个人职业生涯考虑,java优先1 1.3. 从项目实际来 ...
- 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])
常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...
- 如何选择PHP框架?
PHP是世界上最受欢迎的编程语言之—.最近发布的PHP7令这种服务器的编程语言比以前变得更好,更稳定了. PHP被广泛应用于重大的项目.例如Facebook就是使用PHP来维护和创建它们的内部系统的. ...
- CoreCRM 开发实录——开始之新项目的技术选择
2016年11月,接受了一个工作,是对"悟空CRM"进行一些修补.这是一个不错的 CRM,开源,并提供一个 SaaS 的服务.正好微软的 .NET Core 和 ASP.NET C ...
- angular2系列教程(九)Jsonp、URLSearchParams、中断选择数据流
大家好,今天我们要讲的是http模块的第二部分,主要学习ng2中Jsonp.URLSearchParams.observable中断选择数据流的用法. 例子
- 算法与数据结构(十三) 冒泡排序、插入排序、希尔排序、选择排序(Swift3.0版)
本篇博客中的代码实现依然采用Swift3.0来实现.在前几篇博客连续的介绍了关于查找的相关内容, 大约包括线性数据结构的顺序查找.折半查找.插值查找.Fibonacci查找,还包括数结构的二叉排序树以 ...
随机推荐
- 常见条码类型介绍(Code 39、Code 128、EAN-8、EAN-13、EAN-128、ISSN、TIF、TIF-14、UPC(A)、UPC(E))
常见条码类型,如下: 1.Code 39 Code 39,又称为"Code 3 of 9",是非零售市场中最常用的格式,用于盘存和跟踪.Code 39码编码规则简单,误码率低.所能 ...
- Comet Contest#11 F arewell(DAG计数+FWT子集卷积)
传送门. 题解: 4月YY集训时做过DAG计数,和这个基本上是一样的,但是当时好像直接暴力子集卷积,不然我省选时不至于不会,这个就多了个边不选的概率和子集卷积. DAG计数是个套路来的,利用的是DAG ...
- Linux环境下安装PHP的memced扩展
先下载libmemcached: wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.t ...
- delphi 多线程3
多线程程序设计 我们知道,win95或winNT都是“多线程”的操作系统,在DELPHI .中,我们可以充分利用这一特性,编写出“多线程”的应用程序. 对以往在DOS或16位windows下写程序的 ...
- 数字三角形W(加强版) codevs 2189
2189 数字三角形W 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描述 Description 数字三角形 要求走到最后mod 100最大 输入描述 Inpu ...
- AcWing 160. 匹配统计 (哈希+二分) 打卡
阿轩在纸上写了两个字符串,分别记为A和B. 利用在数据结构与算法课上学到的知识,他很容易地求出了“字符串A从任意位置开始的后缀子串”与“字符串B”匹配的长度. 不过阿轩是一个勤学好问的同学,他向你提出 ...
- vue2 开发环境部署 及 打包配置
一.脚手架工具(vue2 的脚手架工具是 vue-cli) 1.脚手架工具的安装 参考 : https://blog.csdn.net/wulala_hei/article/details/804 ...
- 记一次面经pm
记一次面经 介绍下你自己的这个项目. 浅谈一下数据结构. 参考网站 在我的记忆中,数据结构包括链表.线性表.栈与队列.数组.一些排序,比如冒泡排序.快速排序.希尔排序.堆排序等,还有一些树 ...
- asp.net core容器&mysql容器network互联 & docker compose方式编排启动多个容器
文章简介 asp.net core webapi容器与Mysql容器互联(network方式) docker compose方式编排启动多个容器 asp.net core webapi容器与Mysql ...
- LeetCode 复制带随机指针的链表
题目链接:https://leetcode-cn.com/problems/copy-list-with-random-pointer/ 题目大意 略. 分析 空间复杂度 O(1) 的做法非常开拓思维 ...