3170: [Tjoi 2013]松鼠聚会 (中位数)
来源:互联网 发布:快递空包淘宝会查吗 编辑:程序博客网 时间:2024/04/27 01:14
对于这题,我们可以得到d(i,j)=max(|xi-xj|,|yi-yj|),
设x'=(x+y)/2,y'=(x-y)/2
那么d(i,j)=|xi'-xj'|+|yi'-yj'|
x,y轴可以分开统计
先是统计x轴,将所有松鼠的x'排序
用前缀和和后缀和求出某个松鼠到其他松鼠的X轴距离
Xi*(i-1)-sum(1..i-1)+sum(i+1..n)-(n-i)*Xi
y轴同理
#include<iostream>#include<cstdio>#include<algorithm>#define N 100005#define ll long longusing namespace std;int n;struct point{ll x,y;int num;}a[N];double ans=1e20;ll sx,sy,ax[N],bx[N],ay[N],by[N];bool cmpx(point a,point b){return a.x<b.x;}bool cmpy(point a,point b){return a.y<b.y;}int main(){scanf("%d",&n);for(int i=1;i<=n;i++){ ll x,y; scanf("%lld%lld",&x,&y); a[i].x=x+y;a[i].y=x-y; }sort(a+1,a+n+1,cmpy);for(int i=1;i<=n;i++){ay[i]=ay[i-1]+a[i].y;by[n-i+1]=by[n-i+2]-a[n-i+1].y;a[i].num=i;}sort(a+1,a+n+1,cmpx);for(int i=1;i<=n;i++){ax[i]=ax[i-1]+a[i].x;bx[n-i+1]=bx[n-i+2]-a[n-i+1].x;}for(int i=1;i<=n;i++) { ll tmp=0; tmp+=ax[n]-ax[i]-(n-i)*(ax[i]-ax[i-1]); tmp+=bx[1]-bx[i]-(i-1)*(bx[i]-bx[i+1]); int j=a[i].num; tmp+=ay[n]-ay[j]-(n-j)*(ay[j]-ay[j-1]); tmp+=by[1]-by[j]-(j-1)*(by[j]-by[j+1]); if(tmp<ans)ans=tmp; } printf("%.0lf",ans/2);return 0;}
0 0
- 3170: [Tjoi 2013]松鼠聚会 (中位数)
- 3170: [Tjoi 2013]松鼠聚会
- 3170: [Tjoi 2013]松鼠聚会
- BZOJ 3170: [Tjoi 2013]松鼠聚会
- BZOJ 3170 [Tjoi 2013]松鼠聚会
- bzoj 3170: [Tjoi 2013]松鼠聚会
- bzoj 3170: [Tjoi 2013]松鼠聚会
- [BZOJ3170] [Tjoi 2013]松鼠聚会
- BZOJ3170: [Tjoi 2013]松鼠聚会
- 杂题 [Tjoi 2013]松鼠聚会
- 【bzoj3170】[Tjoi 2013]松鼠聚会
- BZOJ 3170([Tjoi 2013]松鼠聚会-Manhattan距离单点最近)
- BZOJ 3170([Tjoi 2013]松鼠聚会-Manhattan距离单点最近)
- BZOJ 3170 Tjoi 2013 松鼠聚会 计算几何
- bzoj 3170: [Tjoi 2013]松鼠聚会 计算几何
- BZOJ P3170: [Tjoi 2013]松鼠聚会
- BZOJ 3170 TJOI 2013 松鼠聚会 切比雪夫距离
- BZOJ 3170: [Tjoi 2013]松鼠聚会(切比雪夫距离)
- linux下的openGL配置
- uva 11195 Another queen (用状态压缩解决N后问题)
- Qt学习(十一) 在Qt中调用CMD命令示例
- git 分支管理
- pat 1033 To Fill or Not to Fill
- 3170: [Tjoi 2013]松鼠聚会 (中位数)
- Android核心分析
- NIO的理解,buffer与channel的关系比喻
- 百度现在也成了流氓(流氓软件)的胚子样,吐口恶气让大家都来认识它!
- OCP 1Z0 053 142
- 苹果CEO Tim Cook,苹果因他而改变
- Ubuntu server 14.04 如何配置链接wifi
- java异常处理总结笔记
- android有关post乱码终极解决