dp +路径输出

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <vector>
#include <sstream>
#include <cstring>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <algorithm>
#include <iostream>
#define FFI freopen("in.txt", "r", stdin)
#define maxn 1010
#define INF 0x3f3f3f3f
#define inf 10000000
#define MOD 1000000007
#define ULL unsigned long long
#define LL long long
#define _setm(houge) memset(houge, INF, sizeof(houge))
#define _setf(houge) memset(houge, -1, sizeof(houge))
#define _clear(houge) memset(houge, 0, sizeof(houge))
using namespace std; int dp[35][205], n, k;
int loc[210], w[210][210]; void fun(int m,int x,int y) {
if(x == y)
printf("Depot %d at restaurant %d serves restaurant %d\n", m, x, y);
else
printf("Depot %d at restaurant %d serves restaurants %d to %d\n", m, (x+y)/2, x, y);
} void print(int x, int y, int sum) {
if(x == 1) {
fun(x, x, y);
return;
}
else {
for(int i = x; i <= y; ++ i) {
if(w[i][y] + dp[x-1][i-1] == sum) {
print(x-1, i-1, sum-w[i][y]);
fun(x, i, y);
break;
}
}
}
} int main() {
FFI;
int ca = 0;
while(scanf("%d%d", &n, &k) == 2 && n+k) {
for(int i = 1; i <= n; ++ i) {
scanf("%d", &loc[i]);
}
_clear(w);
_setm(dp);
for(int i = 1; i <= n; ++ i) {
for(int j = i; j <= n; ++ j) {
for(int d = i; d <= j; ++ d) {
w[i][j] += abs(loc[d]-loc[(i+j)/2]);
}
}
}
for(int i = 1; i <= n; ++ i) dp[1][i] = w[1][i];
for(int i = 2; i <= k; ++ i) {
for(int j = n; j >= i; -- j) {
for(int d = i-1; d <= j; ++ d) {
dp[i][j] = min(dp[i][j], dp[i-1][d]+w[d+1][j]);
}
}
}
printf("Chain %d\n", ++ ca);
print(k, n, dp[k][n]);
printf("Total distance sum = %d\n\n", dp[k][n]);
}
return 0;
}

  

最新文章

  1. 【分布式】Zookeeper客户端
  2. java中时间比较
  3. LoadRunner中取Request、Response
  4. 浏览器渲染原理--reflow
  5. IE PNG格式的图片不现实的的解决方法
  6. iOS菜鸟总结1
  7. iOS开发-轻点、触摸和手势
  8. QT:使用“状态模式”绘制界面
  9. TypeScript 5 Angular 2
  10. SAP HANA中的SLT简介
  11. java web项目部署到tomcat 8.5 此驱动程序不支持 Java Runtime Environment (JRE) 1.8 版。请使用支持 JDBC 4.0 的 sqljdbc4.jar 类库
  12. 潭州课堂25班:Ph201805201 tornado 项目 第二课 项目 基本功能模块和 Git 使用 (课堂笔记)
  13. phpstorm 破解
  14. jquery tooltip插件
  15. CVE-2018-7566
  16. react父转子
  17. aix操作系统的版本中TL SP 含义
  18. 2017.5.27 NOIP模拟赛(hzwer2014-5-16 NOIP模拟赛)
  19. 用C#实现对MSSqlServer数据库的增删改查---DAL层
  20. Nginx源码完全注释(4)ngx_queue.h / ngx_queue.c

热门文章

  1. Excel数据导入SQL Server
  2. TFS2010升级至TFS2013完全指南(更换服务器)
  3. django 模板中{%for%}的使用
  4. Asp.Net Core 入门(四)—— Model、View、Controller
  5. 在已有的mysql表中添加自增字段
  6. 数的计数(noip2001,动态规划递推)
  7. Informatica抽取SQL Server数据库乱码
  8. 用户管理命令--passwd,usermod,userdel
  9. 在docker中部署nginx
  10. java面试微信交流群-欢迎你的加入