bzoj 3170: [Tjoi 2013]松鼠聚会&3210: 花神的浇花集会
来源:互联网 发布:安卓源码查看 编辑:程序博客网 时间:2024/04/27 17:25
题意:
有两题就不写了,挺好的懂得。
题解:
这两题差不多。
将切比雪夫距离转成曼哈顿距离就很好做了。
3210要注意转回来是小数的情况,所以要枚举周围四个点。
code:
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define M 100100 using namespace std; int n,X[M],Y[M]; long long Check(int x,int y) { int i; long long re=0; for(i=1;i<=n;i++) re+=abs(x-X[i])+abs(y-Y[i]); return re; } int main() { int i,x,y; cin>>n; for(i=1;i<=n;i++) { scanf("%d%d",&x,&y); X[i]=x+y;Y[i]=x-y; } sort(X+1,X+n+1); sort(Y+1,Y+n+1); x=X[n+1>>1]; y=Y[n+1>>1]; if( ~(x^y)&1 ) cout<<Check(x,y)/2<<endl; else cout<<min(min(Check(x+1,y),Check(x-1,y)),min(Check(x,y+1),Check(x,y-1)))/2<<endl; return 0; }
code:
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>#define LL long longusing namespace std;struct node{ LL x,y,num;}a[100010];LL n,X[100010],Y[100010];bool cmp_x(node a,node b) {return a.x<b.x;}bool cmp_y(node a,node b) {return a.y<b.y;}int main(){ scanf("%lld",&n); for(LL i=1;i<=n;i++) { LL x,y;scanf("%lld %lld",&x,&y); a[i].x=x-y;a[i].y=x+y;a[i].num=i; } sort(a+1,a+n+1,cmp_x); LL sum=0; for(LL i=1;i<=n;i++) sum+=(a[i].x-a[1].x); X[a[1].num]=sum; for(LL i=2;i<=n;i++) { sum+=(i-1)*(a[i].x-a[i-1].x); sum-=(n-i+1)*(a[i].x-a[i-1].x); X[a[i].num]=sum; } sort(a+1,a+n+1,cmp_y); sum=0; for(LL i=1;i<=n;i++) sum+=(a[i].y-a[1].y); Y[a[1].num]=sum; for(LL i=2;i<=n;i++) { sum+=(i-1)*(a[i].y-a[i-1].y); sum-=(n-i+1)*(a[i].y-a[i-1].y); Y[a[i].num]=sum; } LL ans=1LL<<60; for(LL i=1;i<=n;i++) ans=min(ans,X[i]+Y[i]); printf("%lld",ans/2);}
阅读全文
1 0
- bzoj 3170: [Tjoi 2013]松鼠聚会&3210: 花神的浇花集会
- BZOJ 3170: [Tjoi 2013]松鼠聚会
- BZOJ 3170 [Tjoi 2013]松鼠聚会
- bzoj 3170: [Tjoi 2013]松鼠聚会
- bzoj 3170: [Tjoi 2013]松鼠聚会
- BZOJ 3210 花神的浇花集会
- bzoj 3210: 花神的浇花集会
- bzoj 3210: 花神的浇花集会
- 3170: [Tjoi 2013]松鼠聚会
- 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]松鼠聚会
- BZOJ 3210 花神的浇花集会 计算几何- -?
- bzoj 3210: 花神的浇花集会 计算几何
- 3170: [Tjoi 2013]松鼠聚会 (中位数)
- mysql随机抓取记录
- Android Studio 3.0 The android gradle plugin version 3.0.0-alpha1 is too old, update to the
- Leetcode 12 integer-to-roman
- Leetcode:binary-tree-postorder-traversal
- 获取href所带参数
- bzoj 3170: [Tjoi 2013]松鼠聚会&3210: 花神的浇花集会
- EventBus 源码解析
- Linux 系统 lsof 命令转载
- LaTeX宏包索引
- 如何用51单片机点亮一盏LED灯
- debug模式下eclipse老是自动跳到ThreadPoolExecutor解决方案
- Maven 配置
- POJ3450 Corporate Identity 【后缀数组】
- [Leetcode]2.Add Two Numbers