BZOJ3170: [Tjoi 2013]松鼠聚会
来源:互联网 发布:淘宝双11报名入口 编辑:程序博客网 时间:2024/04/24 14:16
切比雪夫距离,直接上公式转成哈密顿距离
然后就是找一个点到其他所有点的哈密顿距离和最短,将两维分开考虑,排个序O(n)就可以算出每个点到其他所有点x坐标的距离和,y坐标的距离和
注意longlong…
#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cstdio>#include<cstdlib>#include<cstring>#include<climits>#include<complex>#include<iostream>#include<algorithm>#define ll long longusing namespace std;const ll maxn = 110000;struct node{ ll x,i;}p1[maxn],p2[maxn];ll s1[maxn],s2[maxn];bool cmp(node x,node y){return x.x<y.x;}ll n;int main(){ scanf("%lld",&n); for(ll i=1;i<=n;i++) { ll x,y; scanf("%lld%lld",&x,&y); p1[i].x=x+y; p1[i].i=i; p2[i].x=x-y; p2[i].i=i; } sort(p1+1,p1+n+1,cmp); sort(p2+1,p2+n+1,cmp); for(ll i=2;i<=n;i++) { s1[p1[1].i]+=abs(p1[1].x-p1[i].x); s2[p2[1].i]+=abs(p2[1].x-p2[i].x); } for(ll i=2;i<=n;i++) { s1[p1[i].i]=s1[p1[i-1].i]-(p1[i].x-p1[i-1].x)*(n-i+1-i+1); s2[p2[i].i]=s2[p2[i-1].i]-(p2[i].x-p2[i-1].x)*(n-i+1-i+1); } ll ans=1; for(ll i=2;i<=n;i++) { if(s1[i]+s2[i]<s1[ans]+s2[ans]) ans=i; } printf("%lld\n",(s1[ans]+s2[ans])>>1); return 0;}
0 0
- [BZOJ3170] [Tjoi 2013]松鼠聚会
- BZOJ3170: [Tjoi 2013]松鼠聚会
- 【bzoj3170】[Tjoi 2013]松鼠聚会
- 3170: [Tjoi 2013]松鼠聚会
- 3170: [Tjoi 2013]松鼠聚会
- 杂题 [Tjoi 2013]松鼠聚会
- BZOJ3170[TJOI2013]松鼠聚会
- bzoj3170【TJOI2013】松鼠聚会
- 3170: [Tjoi 2013]松鼠聚会 (中位数)
- BZOJ 3170: [Tjoi 2013]松鼠聚会
- BZOJ 3170 [Tjoi 2013]松鼠聚会
- BZOJ P3170: [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]松鼠聚会 计算几何
- 嵌入式系统知识点总结(一)
- 某拖延症晚期的2016年终总结
- 简单了解进程和线程的区别
- 开门人和关门人
- bzoj 1442: [Poi2006]Crystal
- BZOJ3170: [Tjoi 2013]松鼠聚会
- 数据库 Access002
- dubbo在xml中配置后中无法读取到dubbo.xsd
- MySQL server has gone away 问题的解决方法
- 贝叶斯NLP迷你项目
- 1042. 字符统计(20)
- .NET领域驱动设计—实践(穿过迷雾走向光明)
- 简单的固定时间间隔方法
- Python:如何使用SQLite数据库