51nod1108 距离之和最小 V2
来源:互联网 发布:调音器软件下载 编辑:程序博客网 时间:2024/06/06 03:16
我们写一下就可以发现:
假设符合要求的点的坐标为(x, y, z); 那么ans = |x - x1| + |y - y1| + |z - z1| + |x - x1| + |y - y2| + |z - z2|……
由于求的是曼哈顿距离,x 和 y z坐标之间没有相互制约关系,所以让x y z 分别为xi yi zi(i = 1 2 3 ……)的中间点就好了
#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;const int maxn = 1e5;ll x[maxn], y[maxn], z[maxn];int main(){ ll n, ans = 0; scanf("%lld", &n); for(int i = 1; i <= n; i++){ scanf("%lld%lld%lld", &x[i], &y[i], &z[i]); } sort(x + 1, x + n + 1); sort(y + 1, y + n + 1); sort(z + 1, z + n + 1); for(int i = 1; i <= n; i++){ if(i <= n / 2) ans -= x[i] + y[i] + z[i]; else if(n % 2 == 0 || i > n / 2 + 1){ ans += x[i] + y[i] + z[i]; } } printf("%lld\n", ans); return 0;}
阅读全文
0 0
- 51nod1108 距离之和最小 V2
- 51nod1108(距离之和最小V2)
- 距离之和最小 V2
- 51nod 1108 距离之和最小 V2
- 51nod 1108 距离之和最小 V2
- 51nod 1108 距离之和最小 V2
- 51nod-【1108 距离之和最小 V2】
- 51NOD 1108 距离之和最小 V2
- 点头 距离之和最小 V2
- 51Nod-1108-距离之和最小 V2
- 51nod 1108 距离之和最小 V2【思维+求中位数】
- 51nod 1108 距离之和最小 V2(中位数)
- 51nod 1096 距离之和最小 && 1108-距离之和最小 V2(简单数学)&& 1110 距离之和最小 V3(逆思维)
- 51NOD 1108 距离之和最小 V2(中位数 + 化整为分)
- 51nod 最小距离之和-中位数
- 51nod 1096 距离之和最小
- 51NOD 1096 距离之和最小
- 【51Nod 1110 】距离之和最小 V3
- 用C语言实现给定两个整形变量的值,将两个值的内容进行交换。(4种方法)
- RedHat配置CentOs的yum源
- JavaScript 开发的40个经典技巧
- 输入四个整数,找出其中的最大值,用函数的嵌套调用来处理
- apache-comnons系列之commons-pool2.4 学习笔记
- 51nod1108 距离之和最小 V2
- Redis:使用jedis连接redis数据库过程
- 生成学习算法
- 03、用Tensorflow训练一个线性回归
- C语言(8)字母与数字转换
- 正则表达式字符解释
- 企业管理理论综述与实践 — 营销
- Mysql命令大全
- HashMapJDK1.8源代码分析