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. PHP ftp_chmod() 函数

    定义和用法 ftp_chmod() 函数设置 FTP 服务器上指定文件的权限. 如果成功,该函数返回新的权限.如果失败,则返回 FALSE 和一个警告. 语法 ftp_chmod(ftp_connec ...

  2. 【2017 Multi-University Training Contest - Team 8】Hybrid Crystals

    [Link]:http://acm.hdu.edu.cn/showproblem.php?pid=6140 [Description] 等价于告诉你有n个物品,每个物品的价值为-a[i]或a[i],或 ...

  3. Linux服务器的16个监控命令

    想不想知道你的服务器到底在干什么?那么你要知道本文介绍的这些基本命令.一旦你熟悉掌握了这些命令,就为成为专业的 Linux系统管理员打下了基础. 你可以通过图形化用户界面(GUI)程序来获取这些外壳命 ...

  4. GDI及Windows的消息机制

    什么是GDI? GDI, Graphics Device Interface GDI在以下位置已经被微软列为Legacy Graphics,不建议使用来开发应用程序(http://msdn.micro ...

  5. jQuery validate验证隐藏表单(hidden)域

    validate很不错的一个jQuery表单验证插件.升级到了1.9版的后,发现隐藏表单域验证全部失效,特别是在jquery.ui.tabs.min.js构造的Tabs里的验证!网上一搜,也没查到是怎 ...

  6. CUDA编程之环境配置

    VS2015+CUDA8.0环境配置 Anyway,在这里记录下正确的配置方式: 1.首先,上官网下载对应vs版本的CUDA toolkit: https://developer.nvidia.com ...

  7. SQL Serve2008的一些操作

    今天花了一下午的时间在熟悉SQL serve的一些操作,在此记录下学习到的东西: 首先创建数据库: use master --设置当前数据库为master,以便方便访问表sysdatabases if ...

  8. 并发编程之Android中AsyncTask使用详解(四)

    更多Android高级架构进阶视频免费学习请点击:[https://space.bilibili.com/474380680] 在Android中我们可以通过Thread+Handler实现多线程通信 ...

  9. Spring IOC源码分析(二):Bean工厂体系结构设计

    一. 概述 Spring容器通常指的是ApplicationContext的体系结构设计,即整个Spring框架的IOC功能,是通过ApplicationContext接口实现类来提供给应用程序使用的 ...

  10. Mybatis Generator 安装(idea+maven)

    1.在Intellij IDEA创建maven项目(本过程比较简单,略) 2. 在maven项目的pom.xml 添加mybatis-generator-maven-plugin 插件 <bui ...