HDU 4311 Contest 2
2024-08-31 11:22:03
求的是曼哈顿距离。可以把X,Y的距离分开来求。其中,求X、Y的距离可以通过排序后递推的方式求出值的。
#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;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
init();
for(int i=0;i<n;i++){
scanf("%d%d",&acm[i].x,&acm[i].y);
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);
}
return 0;
}
最新文章
- Android入门(九):CheckBox多选清单和ScrollView滚动条
- ThinkPHP数据库访问CRUD;__SELF__和__ACTION__的区别;自动收集表单:$n->;create();
- Zxing兼容2.3等低版本
- MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult
- PHPCMS调用form类编辑器editor函数动态上传图片附件
- Python 1 —— Start Up
- iOS开发之 xcode6 APP 打包提交审核详细步骤
- 回车跳到下一个EDIT
- 解决weblogic与系统时间相差8小时的问题
- Android RadioGroup Fragment Viewpager FragmentPagerAdapter 去哪网Fragment嵌套
- QTableView 添加进度条 添加按钮 TreeWidget 增删改
- angularjs图片上传后不刷新的解决办法
- System.IO命名空间,用于文件/流的处理。
- nginx负载均衡2
- Java序列化框架性能比較
- POJ2503-Babelfish-二分
- JSON 之 SuperObject(11): TSuperTableString、TSuperAvlEntry
- 使用SQL语句查询表及表字段类型说明
- SkyWalking Liunx 环境搭建&;NetCore接入
- poj-2154-polya+euler函数