1 条题解

  • 0
    @ 2025-8-24 22:15:40

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar FLASH_CM
    **

    搬运于2025-08-24 22:15:40,当前版本为作者最后更新于2018-07-30 18:55:54,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题目传送门

    思路:

    首先看一眼数据范围,接着看一眼试题难度,便得出了一个看似非常粗暴,实际为正解的算法

    方法:

    直接把所有的天然气井的横纵坐标分别相加,然后再分别减去所有的中转站的横纵坐标即可(证明过程见尾部)

    注意事项:

    1.最后输出答案的时候记得取绝对值,否则会红色一片。
    2.由于数据很大,一定要记得开long long,否则会WA 16 21 23 25 号点。
    3.测试数据没有问题,不需要学习楼下的同志打表。

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    int main(){
    	long long i,j,k,m,n,sumx=0,sumy=0;
    	scanf("%lld",&n);
    	for(i=1;i<=n;i++){
    		scanf("%lld%lld",&k,&m);
    		sumx+=k;
    		sumy+=m;
    	}
    	for(i=1;i<=n;i++){
    		scanf("%lld%lld",&k,&m);
    		sumx-=k;
    		sumy-=m;
    	}
    	printf("%lld",abs(sumx)+abs(sumy));
    	return 0;
    }
    

    证明过程:

    相信大家可以很简单的想明白,由于天然气井的数量等于中转站的数量,所以对于每一座天然气站都会有一座唯一确定的中转站,而他们之间的距离就等于横纵坐标差的和,由此可证明。

    • 1

    信息

    ID
    4941
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者