Dima and Magic Guitar CodeForces - 366E
Dima and Magic Guitar CodeForces - 366E
题意:
http://blog.csdn.net/u011026968/article/details/38716425
http://vawait.com/2013/11/codeforces-366e/
http://www.cnblogs.com/jianglangcaijin/archive/2013/11/25/3441319.html
对于s中任意相邻两个数x和y,都要求在矩形中找出任意两个分别等于x和y的点,然后求其曼哈顿距离,本题要求所有求出的曼哈顿距离的最大值最大。容易想到,应当是让一对点的曼哈顿距离最大,其他点任意即可。也就是对于s中所有相邻两个数,找出矩形中分别等于这两个数且之间曼哈顿距离最大的两个点。
曼哈顿距离等于以下的最大值:
(xa-xb)+(ya-yb)
(xa-xb)-(ya-yb)
-(xa-xb)+(ya+yb)
-(xa-xb)-(ya-yb)
也就是这些的最大值:
(xa+ya)-(xb+yb)
(xa-ya)-(xb-yb)
(-xa+ya)-(-xb+yb)
(-xa-ya)-(-xb-yb)
因此要求值分别为a和b的点间最大的曼哈顿距离,就是这四种的最大值,而每种的最大值都是被减数最大,减数最小。也就是分别记录所有值为a的点中xa+ta,xa-ya,-xa+ya,-xa-ya的最大与最小值。
(这题没有讲不可能完成时怎么处理,也没有这样的数据。)
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[];
int max1[][],min1[][];
int n,m,k,s,ans;
int main()
{
int i,j,t;
scanf("%d%d%d%d",&n,&m,&k,&s);
memset(min1,0x3f,sizeof(min1));
memset(max1,,sizeof(max1));
for(i=;i<=n;i++)
for(j=;j<=m;j++)
{
scanf("%d",&t);
max1[t][]=max(max1[t][],i+j);
max1[t][]=max(max1[t][],i-j);
max1[t][]=max(max1[t][],-i+j);
max1[t][]=max(max1[t][],-i-j);
min1[t][]=min(min1[t][],i+j);
min1[t][]=min(min1[t][],i-j);
min1[t][]=min(min1[t][],-i+j);
min1[t][]=min(min1[t][],-i-j);
}
scanf("%d",&a[]);
for(i=;i<=s;i++)
{
scanf("%d",&a[i]);
for(j=;j<=;j++)
ans=max(ans,max(max1[a[i-]][j]-min1[a[i]][j],max1[a[i]][j]-min1[a[i-]][j]));
}
printf("%d",ans);
return ;
}
Dima and Magic Guitar CodeForces - 366E的更多相关文章
- CF 366E Dima and Magic Guitar(最远哈密顿距离)
题目链接:http://codeforces.com/problemset/problem/366/E 题意:给出一个n*m的数字矩阵A,每个矩阵元素的范围[1,K].给出一个长度为s的数字串B,B的 ...
- CF 366E - Dima and Magic Guitar 最远曼哈顿距离
题目:http://codeforces.com/problemset/problem/366/E 事实上就是找 n * m 矩阵中数字 x 和 数字 y 的最远距离. 方法參照武森的论文<浅谈 ...
- cf E. Dima and Magic Guitar
http://codeforces.com/contest/366/problem/E |x1-x2|+|y1-y2|有四种情况 1.-(x1-x2)+(y1-y2); 2.(x1-x2)-(y1-y ...
- Magic Numbers CodeForces - 628D
Magic Numbers CodeForces - 628D dp函数中:pos表示当前处理到从前向后的第i位(从1开始编号),remain表示处理到当前位为止共产生了除以m的余数remain. 不 ...
- Magic Stones CodeForces - 1110E (思维+差分)
E. Magic Stones time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- Chris and Magic Square CodeForces - 711B
ZS the Coder and Chris the Baboon arrived at the entrance of Udayland. There is a n × n magic grid o ...
- Vasya and Magic Matrix CodeForces - 1042E (概率dp)
大意:给定n*m矩阵, 初始位置(r,c), 每一步随机移动到权值小于当前点的位置, 得分为移动距离的平方, 求得分期望. 直接暴力dp的话复杂度是O(n^4), 把距离平方拆开化简一下, 可以O(n ...
- codeforces#516 Div2---ABCD
A---Make a triangle! http://codeforces.com/contest/1064/problem/A 题意: 给定三个整数表示三角形的边.每次给边长可以加一,问至少要加多 ...
- Codeforces Round #262 (Div. 2)解题报告
详见:http://robotcator.logdown.com/posts/221514-codeforces-round-262-div-2 1:A. Vasya and Socks http ...
随机推荐
- 在Qt Creator中为Qt工程添加资源
1.右键单击工程 -> Add New ... -> Qt -> Qt Resource File -> Choose... -> Name: -> Next -& ...
- 如何解决Windows的端口占用问题?
已知某应用在启动时会创建服务套接字,并将其绑定至端口8888,然而端口8888已被占用,如何解除占用? 以下为解决方案: 在cmd中运行netstat -ano|findstr 8888,其中的参数8 ...
- luogu2704 炮兵阵地 状态压缩DP
题目大意:一个N*M的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),在每一格平原地形上最多可以布置一支炮兵部队,能攻击到的区域:沿横向左右各两格,沿纵向上 ...
- Hive Metastore
metastore:实际保存表信息的地方. 包括: 数据库,表的基本信息:权限信息:存储格式信息: 各种属性信息: 权限信息: ...
- 默认安装centos7 网卡没有启动的问题
CentOS最小化安装的时候,先把net-tools安装上(先把网卡配置好再安装.) #yum install net-tools 登录操作系统 用户名root 密码 123456 输入ip查询命令 ...
- Web前端性能优化经验分享
最近一直有给新同学做前端方面的培训,也有去参与公司前端的招聘,所以把自己资料库里面很多高效且有用的知识做了些 规整分类,然后再分享一篇关于前端优化方面的总结.而且春节一过就又是招聘的高峰期了,在校的. ...
- jQuery制作信息提示弹出层插件【推荐】
给大家分享一款非常实用的弹窗提示窗口插件,包含多种模式.带有回执函数值的功能.1. [代码][JavaScript]代码 <script type="text/javascript& ...
- 基于C#实现Windows服务状态启动和停止服务的方法
网址:http://www.jb51.net/article/89230.htm
- 计算机科学 —— 时间戳(timestamp)
时间戳的一个重要属性即是:唯一性,以起到唯一标识的作用: 1. linux 命令行 $ date +%s 1506222745 2. Python 时间戳 内置 time 库 >> tim ...
- windows下编译调试nginx
typora-copy-images-to: image windows下编译调试nginx linux使用gdb跟踪代码效率不高,在通过跟踪代码进行源码分析,与定位复杂逻辑问题时,如果有一个简单易用 ...