洛谷 P1708 天然气井 题解

https://www.luogu.org/problemnew/show/P1708

 

这道题还是比较好的。

读完题目我们先想想如何计算某个天然气井($x_1,y_1$)和中转站($a_1,b_1$)的距离.
$$dis=abs(x_1-x_2)+abs(a_1-b_2)$$

那么现在再想一下对于每一个天然气井都有一个中转站,那么
$$ans=\sum_{i=1}^n(x_i-a_i)+(y_i-b_i) $$

可以变为$$\left| \sum_{i=1}^nx_i-\sum_{i=1}^na_i \right|+\left| \sum_{i=1}^ny_i-\sum_{i=1}^nb_i \right|$$

 

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#define LL long long
using namespace std;
LL n,ansx,ansy;
int main()
{
    LL x,y;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%lld%lld",&x,&y),ansx+=x,ansy+=y;
    for(int i=1;i<=n;i++)scanf("%lld%lld",&x,&y),ansx-=x,ansy-=y;
    printf("%lld",abs(ansx)+abs(ansy));
} 

 

posted @ 2018-08-23 14:48  Manjusaka丶梦寒  阅读(153)  评论(0编辑  收藏  举报