P2004 领地选择

题目描述

作为在虚拟世界里统帅千军万马的领袖,小Z认为天时、地利、人和三者是缺一不可的,所以,谨慎地选择首都的位置对于小T来说是非常重要的。

首都被认为是一个占地C*C的正方形。小Z希望你寻找到一个合适的位置,使得首都所占领的位置的土地价值和最高。

输入输出格式

输入格式:

第1行:三个正整数N,M,C,表示地图的宽和长以及首都的边长。

第2∼N+1行:第i+1行包含M个整数,表示了地图上每个地块的价值。价值可能为负数。

输出格式:

一行,两个整数X、Y,表示首都左上角的坐标。

输入输出样例

输入样例#1: 复制

3 4 2
1 2 3 1
-1 9 0 2
2 0 1 1
输出样例#1: 复制

1 2

说明

对于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 领地选择的更多相关文章

  1. 洛谷 P2004 领地选择 题解

    P2004 领地选择 题目描述 作为在虚拟世界里统帅千军万马的领袖,小Z认为天时.地利.人和三者是缺一不可的,所以,谨慎地选择首都的位置对于小T来说是非常重要的. 首都被认为是一个占地C*C的正方形. ...

  2. 二维前缀和模板题:P2004 领地选择

    思路:就是使用二维前缀和的模板: 先放模板: #include<iostream> using namespace std; #define ll long long ; ll a[max ...

  3. 洛谷 P2004 领地选择

    题目传送门 解题思路: 二维前缀和. AC代码: #include<iostream> #include<cstdio> using namespace std; ][],an ...

  4. Atitit 项目语言的选择 java c#.net  php??

    Atitit 项目语言的选择 java c#.net  php?? 1.1. 编程语言与技术,应该使用开放式的目前流行的语言趋势1 1.2. 从个人职业生涯考虑,java优先1 1.3. 从项目实际来 ...

  5. 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])

    常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...

  6. 如何选择PHP框架?

    PHP是世界上最受欢迎的编程语言之—.最近发布的PHP7令这种服务器的编程语言比以前变得更好,更稳定了. PHP被广泛应用于重大的项目.例如Facebook就是使用PHP来维护和创建它们的内部系统的. ...

  7. CoreCRM 开发实录——开始之新项目的技术选择

    2016年11月,接受了一个工作,是对"悟空CRM"进行一些修补.这是一个不错的 CRM,开源,并提供一个 SaaS 的服务.正好微软的 .NET Core 和 ASP.NET C ...

  8. angular2系列教程(九)Jsonp、URLSearchParams、中断选择数据流

    大家好,今天我们要讲的是http模块的第二部分,主要学习ng2中Jsonp.URLSearchParams.observable中断选择数据流的用法. 例子

  9. 算法与数据结构(十三) 冒泡排序、插入排序、希尔排序、选择排序(Swift3.0版)

    本篇博客中的代码实现依然采用Swift3.0来实现.在前几篇博客连续的介绍了关于查找的相关内容, 大约包括线性数据结构的顺序查找.折半查找.插值查找.Fibonacci查找,还包括数结构的二叉排序树以 ...

随机推荐

  1. 【leetcode】954. Array of Doubled Pairs

    题目如下: Given an array of integers A with even length, return true if and only if it is possible to re ...

  2. js 暂停几秒后刷新或提交

    js源码如下: setTimeout(function () { //内容3秒后执行 }, 3000);

  3. 【记录】spring boot 图片上传与显示

    问题:spring boot 使用的是内嵌的tomcat, 文件上传指定目录时不知道文件上传到哪个地方,不知道访问路径. //部署到服务器的tomcat上时通常使用这种方式request.getSer ...

  4. 【Jenkins、sonar】

    1.Jenkins入门(一)安装Jenkins 2.Jenkins入门(二)部署java项目 3.Jenkins远程部署SpringBoot应用 4.配置sonar.jenkins进行持续审查 5.S ...

  5. thinkphp ajax调用demo

    http://files.cnblogs.com/files/jxkshu/tp_ckgd.rar

  6. ORM-Dapper:Dapper列表

    ylbtech-ORM-Dapper:Dapper列表 1.返回顶部 1.1. https://dapper-tutorial.net/ 1.2. 2.1. https://www.nuget.org ...

  7. Display与 Visibility的区别

    隐藏元素的方法有: display:none或visibility:hidden visibility:hidden可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间.也就是说,该元素虽然被 ...

  8. 实用的CSS3-渐变背景色

    线性渐变背景色:     第一个参数为渐变方式,后两个参数为起始点位置和终止点位置,后两个参数为起始颜色和终止颜色,后面那个参数为背景区域padding表示包含padding的区域,content表示 ...

  9. js登陆验证错误不刷新页面

    验证函数返回 false;返回到onclickonclick 其实也是一个函数.. 所以需要加 return;

  10. ES6数组Api扩充

    1.  Array.of( );     ----将一组数据转换成一个数组: const num=201314; const a=Array.of(num); console.log(a); //数组 ...