nyoj 7

题解

暴力枚举。

#include <iostream>
#include <cstdio>
#include <fstream>
#include <cstring>
#include <set>
#include <cmath>
#include <algorithm>
using namespace std;const int maxn = 20;
const int inf  = 1 << 30;
int   x[maxn], y[maxn], n;int calc(int i, int j){int sum = 0;for(int k = 0; k < n; ++k){sum += abs(i - x[k]) + abs(j - y[k]);}return sum;
}int main()
{//fstream cin("data.in");int t;for(cin >> t; t--; ){cin >> n;for(int i = 0; i < n; ++i){cin >> x[i] >> y[i];}int ans = inf;for(int i = 0; i < 100; ++i){for(int j = 0; j < 100; ++j){int tmp = calc(i, j);ans = min(ans, tmp);}}cout << ans << endl;}return 0;
}

发现别人一种更优解法。
设邮局坐标 (x,y) (x, y),问题转化为求解

min(∑|xi−x|)+min(∑|yi−y|)

min(\sum|x_i - x|) + min(\sum|y_i - y|)
题目性质,这里 x x,yy可分别求解,这式子可以表示为数轴上有 n n个点,求一点到其他各点的距离之和最小。
如果nn为奇数,这点就是中间一点,否则是中间两点的中间点,两种情况下都有 最小和 = ∑n/2i=1(xn−i−xi) \sum_{i=1}^{n/2} (x_{n-i}-x_i) .
画下图不难理解。

#include <iostream>
#include <cstdio>
#include <fstream>
#include <cstring>
#include <set>
#include <cmath>
#include <algorithm>
using namespace std;const int maxn = 20;
const int inf  = 1 << 30;
int   x[maxn], y[maxn], n;int main()
{//fstream cin("data.in");int t;for(cin >> t; t--; ){cin >> n;for(int i = 0; i < n; ++i) cin >> x[i] >> y[i];sort(x, x + n);sort(y, y + n);int ans = 0;for(int i = 0; i < n / 2; ++i)ans += x[n - 1 - i] - x[i] + y[n - 1 - i] - y[i];cout << ans << endl;}return 0;
}

nyoj--7 街区最短路径问题(枚举 or math)相关推荐

  1. nyoj 7 街区最短路径问题 暴力枚举

    街区最短路径问题 , 题目链接 , 点在这里. 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向.住户只可以沿着街道行走 ...

  2. NYOJ 7 街区最短路径问题

    街区最短路径问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间隔相 ...

  3. nyoj 7 街区最短路径问题 (曼哈顿距离(出租车几何) or 暴力)

    街区最短路径问题 时间限制: 3000 ms  |  内存限制:65535 KB 难度: 4 描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间 ...

  4. nyoj 7街区最短路径问题(暴力 || 哈曼顿距离)

    街区最短路径问题 时间限制: 3000 ms  |  内存限制: 65535 KB 难度: 4 描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的 ...

  5. NYOJ——街区最短路径问题

    街区最短路径问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间隔相 ...

  6. NYOJ 街区最短路径问题

    [题目链接] 街区最短路径问题 [解决思路] 方法一.本来想用暴力破解法的. 就是从(0,0)点,到最后一个点,中间所有的点都计算一遍.但是想了一下,这个方法效率实在是太慢了. 但是碍于本人数学水平不 ...

  7. 【NYOJ】题目7街区最短路径

    街区最短路径问题 时间限制: 3000 ms  |  内存限制: 65535 KB 难度: 4 描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的 ...

  8. nyoj7街区最短路径问题

    题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=7 或者: http://115.159.40.116/problem_show.php? ...

  9. 题目7 街区最短路径问题

    为什么80%的码农都做不了架构师?>>>    街区最短路径问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述一个街区有很多住户,街区的街道只能为东西 ...

最新文章

  1. 圣杯布局与双飞翼布局全解
  2. hive 行转列和列转行的方法_读离线和实时大数据开发实战,为你揭开 Hive 优化实践的神秘面纱...
  3. 选择纯种犬还是杂种犬?
  4. java 注解 demo_JAVA语言注解概念使用及Demo讲解
  5. 狄斯奎诺算法 c语言,图的邻接表实现迪杰斯特拉算法(C语言).doc
  6. 使用TestContainers进行数据库测试
  7. ROS在类中发布和接受消息(标准消息)
  8. 没有工厂模式(工厂模式2)
  9. 洛谷 P1113 杂务
  10. iOS 之NSOperation(一)
  11. java 使用itextpdf分割pdf文件,pdf分页
  12. 保证成功率的方案,首先要从实施维度入手
  13. 人工智能导论学习笔记
  14. 什么是边缘计算网关?(边缘计算网关产品的特点?)
  15. android+自定义跑马灯,Android自定义图文跑马灯效果
  16. 软件在线升级系统的设计与实现
  17. html水平导航栏代码连接状态,水平导航栏1.html
  18. 帕斯卡算术机——数学天才的十余年匠心
  19. 万字实录:从DDCTF大赛看当前网络安全新趋势 | 硬创公开课总结文+视频(下篇)...
  20. [bzoj4796][CERC2016]Key Knocking_乱搞

热门文章

  1. 详解split()使用方法
  2. css照片翻转动画 (当鼠标悬停在图片上方时 图片翻转)
  3. $function(){}页面加载函数全局和局部的问题和如何给a标签或者其他标签在ajax中异步绑定事件出现异步的问题
  4. Custom elements in iteration require ‘v-bind:key‘ directives vue/valid-v-for
  5. 后羿 01 ‖ 大羿
  6. 【动态规划】基础DP--硬币组合
  7. c语言中listempty函数,C++ list empty()用法及代码示例
  8. 安全领域中的TTP——结合APT-C1案例解读TTP三要素
  9. ODP.NET与复杂的PL/SQL数据类型(Using ODP.NET To Deal With Complex PLSQL Data Types)
  10. SpringCloud微服务的概念介绍