bzoj 3170 松鼠聚会 | 旋转坐标
来源:互联网 发布:des加密解密算法 f函数 编辑:程序博客网 时间:2024/03/28 17:56
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#define md
#define ll long long
#define inf (int) 1e9
#define eps 1e-8
#define N 100010
using namespace std;
struct P { ll x,y,u,d,l,r;} p[N];
bool cmpx(P a,P b) { return a.x<b.x;}
bool cmpy(P a,P b) { return a.y<b.y;}
int main()
{
int n; ll ans=10000000000000000LL;
scanf("%d",&n);
for (int i=1;i<=n;i++)
{
ll x,y;
scanf("%lld%lld",&x,&y);
p[i].x=x+y; p[i].y=x-y;
}
int mid=(n+1)>>1;
sort(p+1,p+n+1,cmpx);
ll sum=0;
for (int i=1;i<=n;i++) p[i].u=p[i-1].u+(i-1)*abs(p[i].x-p[i-1].x);
for (int i=n;i;i--) p[i].d=p[i+1].d+(n-i)*abs(p[i].x-p[i+1].x);
sort(p+1,p+n+1,cmpy);
for (int i=1;i<=n;i++) p[i].l=p[i-1].l+(i-1)*abs(p[i].y-p[i-1].y);
for (int i=n;i;i--) p[i].r=p[i+1].r+(n-i)*abs(p[i].y-p[i+1].y);
for (int i=1;i<=n;i++) ans=min(ans,p[i].u+p[i].d+p[i].l+p[i].r);
printf("%lld\n",ans>>1);
return 0;
}
- bzoj 3170 松鼠聚会 | 旋转坐标
- BZOJ 3170: [Tjoi 2013]松鼠聚会
- BZOJ 3170 [Tjoi 2013]松鼠聚会
- bzoj 3170: [Tjoi 2013]松鼠聚会
- bzoj 3170: [Tjoi 2013]松鼠聚会
- BZOJ 3170([Tjoi 2013]松鼠聚会-Manhattan距离单点最近)
- BZOJ 3170([Tjoi 2013]松鼠聚会-Manhattan距离单点最近)
- BZOJ 3170 Tjoi 2013 松鼠聚会 计算几何
- bzoj 3170: [Tjoi 2013]松鼠聚会 计算几何
- BZOJ P3170: [Tjoi 2013]松鼠聚会
- 3170: [Tjoi 2013]松鼠聚会
- 3170: [Tjoi 2013]松鼠聚会
- BZOJ 3170 TJOI 2013 松鼠聚会 切比雪夫距离
- BZOJ 3170: [Tjoi 2013]松鼠聚会(切比雪夫距离)
- BZOJ 3170 [Tjoi 2013]松鼠聚会 切比雪夫距离-->曼哈顿距离
- BZOJ 3170: [Tjoi 2013]松鼠聚会 切比雪夫距离
- bzoj 3170: [Tjoi 2013]松鼠聚会&3210: 花神的浇花集会
- 3170: [Tjoi 2013]松鼠聚会 (中位数)
- bzoj 3534 重建
- bzoj 3398 牡牛和牝牛
- 远程控制电脑
- bzoj 2257 瓶子和燃料
- bzoj 1537 bus|cdq分治
- bzoj 3170 松鼠聚会 | 旋转坐标
- bzoj 2660 最多的方案 | dp
- poj 2411| 插头dp
- bzoj 2173 整数的lqp拆分 | dp | 找规律
- bzoj 1187 神奇的游乐园 | 插头dp
- Java工作利器之常用工具类(四)——Json工具类,使用正则支持xml与json互转
- bzoj 2660 最多的方案 | 斐波那契数列
- 设置phoneGap生成的安卓项目手机状态栏透明效果,导航栏透明效果
- bzoj 3108 图的逆变换