题意:在一条公路上,有n个酒店,要建造k个供给站(建造在酒店所在的位置),给出酒店的位置,求怎么样建造供给站才干使得每一个酒店都能得到服务且所要走的路程最短。

思路:在i到j酒店建立一个供给站,要使得路程和最短,要将供给站建立在中间。假设i到j为偶数时,能够建立在中间两个数当中一个地方,假设是奇数时,应该建立在(i + j) / 2的地方。我们能够预处理从i到j酒店的最短路程和dis[i][j]。所以能够得到d[i][j]表示i个供给站为前j个酒店服务时的最短路程和。之后的输出能够在计算的时候增加一个记录数组,记录切割的地方,然后递归输出。

状态转移方程:d[i][j] = min(d[i][j], d[i - 1][k] + dis[k + 1][j]); (1 <= k <  j)

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>typedef long long ll;
using namespace std;const int MAXN = 205;
const int INF = 0x3f3f3f3f;int p[MAXN], vis[MAXN][MAXN];
ll dis[MAXN][MAXN], d[MAXN][MAXN];
int n, m;void init() {memset(vis, 0, sizeof(vis));memset(dis, 0, sizeof(dis));for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)for (int k = i; k <= j; k++)dis[i][j] += abs(p[(i + j) / 2] - p[k]);for (int i = 0; i <= m; i++)for (int j = 0; j <= n; j++)d[i][j] = INF;for (int i = 1; i <= n; i++)d[1][i] = dis[1][i];
}void outPut(int cnt, int x, int y) {printf("Depot %d at restaurant %d serves ", cnt, (x + y) / 2);if (x == y)printf("restaurant %d\n", x);else printf("restaurants %d to %d\n", x, y);
}void print(int x, int y) {if (x > 1)print(x - 1, vis[x][y]);outPut(x, vis[x][y] + 1, y);
}int main() {int t = 1;while (scanf("%d %d", &n, &m) && n || m) {for (int i = 1; i <= n; i++) scanf("%d", &p[i]);init();for (int i = 2; i <= m; i++)for (int j = i; j <= n; j++) for (int k = i - 1; k < j; k++) if (d[i][j] > d[i - 1][k] + dis[k + 1][j]) {d[i][j] = d[i - 1][k] + dis[k + 1][j]; vis[i][j] = k;}printf("Chain %d\n", t++); print(m, n);printf("Total distance sum = %lld\n\n", d[m][n]);}
}

UVA662- Fast Food相关推荐

  1. SIFT和SURF的替换算法——ORB (Oriented FAST and Rotated BRIEF 快速定向和旋转)

    SIFT和SURF的替代算法--ORB (Oriented FAST and Rotated BRIEF 快速定向和旋转 1. 效果图 2. 源码 参考 1. 用于关键点检测和描述的SIFT(Scal ...

  2. OpenCV中的快速特征检测——FAST(Features from Accelerated Segment Test)

    OpenCV中的快速特征检测--FAST(Features from Accelerated Segment Test) 1. 效果图 2. 源码 参考 OpenCV中的尺度不变特征变换(SIFT S ...

  3. Paper9:Fast RCNN

    code:s available under the open-source MIT License at https://github.com/rbgirshick/ fast-rcnn. 摘要: ...

  4. Fast ORB-SLAM

    点云PCL免费知识星球,点云论文速读. 文章:FastORB-SLAM: Fast ORB-SLAM method with Coarse-to-Fine Descriptor Independent ...

  5. SVO(SVO: fast semi-direct monocular visual odometry)

    SVO(SVO: fast semi-direct monocular visual odometry)翻译 文章目录 SVO(SVO: fast semi-direct monocular visu ...

  6. Openreach与华为/诺基亚签署G.fast协议

    据悉,英国固定运营商英国电信(BT)日前宣布,将从华为和诺基亚购买一大批G.fast套件,以便帮助其进行"超快"宽带的部署. 该计划旨在2020年底之前,将速度高达330Mbps的 ...

  7. 我如何使用深度学习通过Fast.ai对医学图像进行分类

    by James Dietle 詹姆斯·迪特尔(James Dietle) Convolutional Neural Networks (CNNs) have rapidly advanced the ...

  8. 是时候改变自学编程方法了,这篇国外网友的分享被fast.ai创始人等点赞

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 还记得你大学时的Java.C.Python等语言是怎么学习的吗?让我们打开经典教材和网络课程看一下,几乎都是下面的套路: 学习变量.数组. ...

  9. 深度学习入门Fast.ai 2.0上线!自带中文字幕,所有笔记、资源全部免费!

    贾浩楠 发自 凹非寺  量子位 报道 | 公众号 QbitAI Fast.ai,最受人们欢迎的MOOC课程和深度学习框架之一. 重代码而非数学,这让不少使用Fast.ai的初学者称霸各种Kaggle比 ...

  10. The genome polishing tool POLCA makes fast and accurate corrections in genome assemblies

    The genome polishing tool POLCA makes fast and accurate corrections in genome assemblies  基因组抛光工具POL ...

最新文章

  1. algid parse error, not a sequence错误
  2. SQL必知必会-约束
  3. 深入Hadoop磁盘部署的算法
  4. 【ES】学习2-搜索
  5. 使用非参数统计检验进行分析的指南
  6. ie11安装程序无法继续 因为你的计算机,win7安装不了ie11怎么回事 win7安装不了ie11的解决方案...
  7. epub格式电子书编辑器
  8. 用户画像项目两大核心内容之一“one_id”(含SQL实现代码)
  9. html格式如何转换mp4视频,html怎样用格式工厂转换成mp4
  10. 苹果 2019 卖什么?新 iPhone 值不值得买?
  11. 由繁到简,开源网络情报系统如何做“减法”?
  12. Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机设备的各种固件信息如DeviceID或者SerialNumber等(C++)
  13. qt在表格中如何画线_在QtreeWidget中显示表格线,该如何处理
  14. FLUENT操作--VOF模型局部初始化的TUI命令
  15. 【图文详解】【pycharm】pycharm更换背景颜色
  16. android app安装在存储卡,怎么把应用安装到sd卡?节约手机空间的诀窍
  17. android中tabview去掉下划线,TabWidget去除底部下划线
  18. 爬取豆瓣前250电影数据
  19. tushare的使用
  20. 面试应该怎样应对!细节决定成败

热门文章

  1. Jsp页面中使用fckeditor控件的两种方法
  2. 简单的3个SQL视图搞定所有SqlServer数据库字典
  3. mysql语句中的sum(if(exp1,exp2,exp3))
  4. 安全预测 影响企业风险管理的三大趋势
  5. 徐玉玉案宣判了,反思大数据能够做些什么!
  6. 《Swift 权威指南》——第6章,第6.7节常量和变量参数
  7. 【转】WCF OpenTimeout, CloseTimeout, SendTimeout, ReceiveTimeout
  8. android自定义View-垂直滚动的TextView
  9. Extjs 格式化---Ext.util.Format类
  10. 大数据学习,涉及的知识点