HDU 4312 Contest 2
题目要求两点间的最大值作为距离即:
即是切比雪夫距离。而切比雪夫距离与曼哈顿距离的转换却很巧妙。
把平面坐标所有点绕原点逆向旋转45度后,所得点的曼哈顿距离之和除以√2,即是切雪比夫距离。旋转点的公式是
提取无理数,即每个新坐标可以是(x-y,x+y)。计算其曼哈顿距离后除以2即可。
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#define LL __int64
using namespace std; struct point{
int x,y;
int num;
}acm[100005];
int n; bool cmpx(point a, point b){
if(a.x<b.x) return true;
return false;
}
bool cmpy(point a,point b){
if(a.y<b.y) return true;
return false;
} LL distx[100005],disty[100005]; LL mint(LL a,LL b){
if(a<b) return a;
return b;
} void init(){
for(int i=0;i<n;i++)
distx[i]=disty[i]=0;
} int main(){
int T,a,b;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
init();
for(int i=0;i<n;i++){
scanf("%d%d",&a,&b);
acm[i].x=a-b; acm[i].y=a+b;
acm[i].num=i;
}
LL tmp;
sort(acm,acm+n,cmpx);
tmp=0;
for(int i=0;i<n;i++){
if(!i)
tmp=distx[acm[i].num]=0;
else{
distx[acm[i].num]=tmp=tmp+(LL)i*((LL)acm[i].x-(LL)acm[i-1].x);
}
}
tmp=0;
for(int i=n-1;i>=0;i--){
if(i==n-1){
tmp=0;
distx[acm[i].num]+=tmp;
}
else {
tmp=tmp+(LL)(n-1-i)*((LL)acm[i+1].x-(LL)acm[i].x);
distx[acm[i].num]+=tmp;
}
}
sort(acm,acm+n,cmpy);
for(int i=0;i<n;i++){
if(!i)
disty[acm[i].num]=tmp=0;
else{
disty[acm[i].num]=tmp=tmp+(LL)i*((LL)acm[i].y-(LL)acm[i-1].y);
}
}
for(int i=n-1;i>=0;i--){
if(i==n-1){
tmp=0;
disty[acm[i].num]+=tmp;
}
else {
tmp=tmp+(LL)(n-1-i)*((LL)acm[i+1].y-(LL)acm[i].y);
disty[acm[i].num]+=tmp;
}
}
LL ans=distx[0]+disty[0];
for(int i=1;i<n;i++)
ans=mint(ans,distx[i]+disty[i]);
printf("%I64d\n",ans/2);
}
return 0;
}
HDU 4312 Contest 2的更多相关文章
- HDU 4312 Meeting point-2(切比雪夫距离转曼哈顿距离)
http://acm.hdu.edu.cn/showproblem.php?pid=4312 题意:在上一题的基础上,由四个方向改为了八个方向. 思路: 引用自http://blog.csdn.net ...
- HDU 5045 Contest(状压DP)
Problem Description In the ACM International Collegiate Programming Contest, each team consist of th ...
- hdu - 5045 - Contest(国家压缩dp)
意甲冠军:N个人M通过主打歌有自己的期望,每个问题发送人玩.它不能超过随机播放的次数1,追求最大业绩预期 (1 ≤ N ≤ 10,1 ≤ M ≤ 1000). 主题链接:pid=5045" ...
- [ACM] hdu 5045 Contest (减少国家Dp)
Contest Problem Description In the ACM International Collegiate Programming Contest, each team consi ...
- HDU 4311 Meeting point-1 && HDU 4312 Meeting point-2
这俩个题 题意::给出N(<1e5)个点求找到一个点作为聚会的地方,使每个点到达这里的距离最小.4311是 曼哈顿距离 4312是 切比雪夫距离: 曼哈顿距离 :大家都知道 对于二维坐标系a( ...
- HDU–5988-Coding Contest(最小费用最大流变形)
Coding Contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
- hdu 5045 Contest(状态压缩DP)
题解:我们使用一个二位数组dp[i][j]记录进行到第i个任务时,人组合为j时的最大和(这里的j我们用二进制的每位相应一个人). 详细见代码: #include <iostream> #i ...
- HDU 5045 Contest
pid=5045">主题链接~~> 做题感悟:比赛时这题后来才写的,有点小尴尬.两个人商议着写写了非常久才写出来,I want to Powerful ,I believe me ...
- HDU 4335 Contest 4
利用降幂公式..呃,还是自己去搜题解吧.知道降幂公式后,就不难了. #include <iostream> #include <cstdio> #include <alg ...
随机推荐
- Hadoop(2)_机器信息分布表
1.分布式环境搭建 采用4台安装Linux环境的机器来构建一个小规模的分布式集群. 图1 集群的架构 其中有一台机器是Master节点,即名称节点,另外三台是Slaver节点,即数据节点.这四台机器彼 ...
- 洛谷 U249 匹配
U249 匹配 题目描述 输入整数s和两个整数集合A和B,从这A和B中各取一个数,如果它们的和等于s,称为“匹配”.编程统计匹配的总次数 输入输出格式 输入格式: 第一行为三个整数s(0<s≤1 ...
- 设置utf8编码问题
注意:乱码和request的具体实现类有关,现在已经查到的是RequestDispatcher.forward调用前使用的是org.apache.catalina.connector.RequestF ...
- 项目工程的包package与文件夹的关系
项目工程的包package与文件夹的关系: 1. 包名与文件夹是分层关系,包名只是一个字符串而已,包名.对应的是层级的文件夹. 如,com.Immoc.Access包,只是一个字符串.但他对应的win ...
- XTU1201:模和除
题目描写叙述 两个整数x和y,满足1<=x<=a,1<=y<=b 且x%y等于x/y的x和y的对数有多少? x%y是x除以y的余数, x/y是x除以y的商,即整数除. 输入 不 ...
- winform显示系统托盘,双击图片图表显示窗体,退出窗体是否提示
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { DialogResult result = Messag ...
- Hadoop问题记录:Wrong FS: hdfs://hp5-249:9000/, expected: file:///
一般在对文件操作的时候可能出现这个问题,可能是打开文件的时候出错,也可能是对文件夹进行遍历的时候出问题. 出现这样的问题通常是在eclipse中执行hadoop的时候出现,直接切换到shell下发送命 ...
- 【BZOJ 2453】 维护队列
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2453 [算法] 带修改的莫队算法 当块的大小为N^(2/3)时,时间复杂度为 : O ...
- Oracle Access和filter的区别
在查看Oracle执行计划的时候经常会遇到Access和filter,脑容量太小,总是分不清两者的区别...稍作整理. Access:表示对应的谓词条件会影响数据的访问路径(是按照索引还是表) Fil ...
- 获得IP地址中文
string ipFilePath = @"~/App_Data/QQWry.dat"; QQWryLocator QQWry = new QQWryLocator(Server. ...