hdu1227 Fast Food
题目链接:http://acm.hdu.edu.cn/showproblem.php?
pid=1227
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <string.h>
#include <string> using namespace std; const int MAXN = 200 + 1; //the number of restaurants
const int MAXM = 30 + 1; //the number of depots
int dp[MAXN][MAXM], value[MAXN][MAXN], pos[MAXN];
int n, k; //输入值 /*
dp[i][j]表示在i个饭店之间建设j个仓库的最短距离。
value[i][j]表示在第i个饭店与第j个饭店之间建设一个仓库,
并由这个仓库供给i到j之间的饭店(包含i。j)的最短距离。
非常明显这个仓库须要建设在i与j的中位数旁边即mid = (i + j) / 2;
当i到j之间有奇数个饭店时mid = i到j最中间的点,
当i到j之间有偶数个饭店时mid = i到j之间最中间的两点的左边的
一点(右边的一个点也能够,事实上仅仅要是这两个点之间的点都能够)
pos[]数组存每一个输入饭店的位置。 */ void input()
{
int cases = 0; while (scanf("%d %d", &n, &k) != EOF) //输入
{
if (!n && !k) break; int mid = 0; for (int i = 1; i <= n; i++)
{
scanf("%d", &pos[i]);
} for (int i = 1; i <= n; i++) //计算value[][]数组
{
for (int j = i; j <= n; j++)
{
mid = (i + j) / 2;
value[i][j] = 0;
for (int x = i; x <= j; x++)
{
value[i][j] += abs(pos[x] - pos[mid]);
}
}
} for (int i = 1; i <= n; i++) dp[i][1] = value[1][i];
for (int i = 1; i <= n; i++) //计算dp[][];
{
for (int j = 2; j <= i && j <= k; j++)
{
dp[i][j] = dp[i - 1][j - 1]; //赋初值,直接在第i个饭店处放置一个仓库
for (int x = j - 1; x < i; x++) //k的范围
{
if (dp[x][j - 1] + value[x + 1][i] < dp[i][j])
{
dp[i][j] = dp[x][j - 1] + value[x + 1][i];
}
}
}
} printf("Chain %d\n", ++cases); //输出
printf("Total distance sum = %d\n\n", dp[n][k]);
}
} int main()
{
input();
return 0;
}
hdu1227 Fast Food的更多相关文章
- HDU1227:Fast Food
题目链接:Fast Food 题意:一条直线上有n个饭店,问建造k个原料厂(仍旧在商店位置)得到的最小距离 分析:见代码 //一条直线上有n个饭店,问建造k个原料厂(仍旧在商店位置)得到的最小距离 / ...
- opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较
opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较 参考: http://wenku.baidu.com/link?url=1aDYAJBCrrK-uk2w3sSNai7h52x_ ...
- 基于Fast Bilateral Filtering 算法的 High-Dynamic Range(HDR) 图像显示技术。
一.引言 本人初次接触HDR方面的知识,有描述不正确的地方烦请见谅. 为方便文章描述,引用部分百度中的文章对HDR图像进行简单的描述. 高动态范围图像(High-Dynamic Range,简称HDR ...
- Fast RCNN 训练自己的数据集(3训练和检测)
转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ https://github.com/YihangLou/fas ...
- Fast RCNN 训练自己数据集 (2修改数据读取接口)
Fast RCNN训练自己的数据集 (2修改读写接口) 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ http ...
- 网格弹簧质点系统模拟(Spring-Mass System by Fast Method)附源码
弹簧质点模型的求解方法包括显式欧拉积分和隐式欧拉积分等方法,其中显式欧拉积分求解快速,但积分步长小,两个可视帧之间需要多次积分,而隐式欧拉积分则需要求解线性方程组,但其稳定性好,能够取较大的积分步长. ...
- XiangBai——【AAAI2017】TextBoxes_A Fast Text Detector with a Single Deep Neural Network
XiangBai--[AAAI2017]TextBoxes:A Fast Text Detector with a Single Deep Neural Network 目录 作者和相关链接 方法概括 ...
- 论文笔记--Fast RCNN
很久之前试着写一篇深度学习的基础知识,无奈下笔之后发现这个话题确实太大,今天发一篇最近看的论文Fast RCNN.这篇文章是微软研究院的Ross Girshick大神的一篇作品,主要是对RCNN的一些 ...
- [转]Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications
This article is from blog of Amazon CTO Werner Vogels. -------------------- Today is a very exciting ...
随机推荐
- redis之(七)redis的集合类型的命令
[一]增加/删除元素 --->命令:SADD key member [member...] --->向集合键中添加一个,或多个元素.如果键不存在,则创建.如果元素存在,则忽略不执行.返回值 ...
- Unique Binary Search Trees I&&II(II思路很棒)——动态规划(II没理解)
Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For exa ...
- Run Rancher server on windows
软件环境:WIN 10 一.首先安装Docker for Windows,Cmder(我用这个执行Docker 命令) 二.右键右下角Docker 图标--> Daemon ,在Registry ...
- 设置loadrunner中每个mdrv.exe进程中包含的vuser个数
设置loadrunner中每个mdrv.exe进程中包含的vuser个数 在loadrunner中,默认的是每50个vuser会使用一个mdrv.exe进程,但是有些时候vuser中的使用的线程太多就 ...
- HDU 2089 不要62【数位DP入门题】
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Linux命令之telnet
telnet [-8EFKLacdfrx] [-X authtype] [-b hostalias] [-e escapechar] [-k realm] [-l user] [-n tracefil ...
- 28、Flask实战第28天:cms后台模板渲染
这节开始,我们需要用到前端模板.^_^..如果需要模板素材的同学,可以点击博客的右侧二维码进行打赏(10元),截图发送到邮箱463951510@qq.com,写明索取flask论坛素材即可,博主收到邮 ...
- Hydra 8.4/8.5新增功能
Hydra 8.4/8.5新增功能 Kali Linux 2017.1自带的Hydra为8.3,现在Hydra升级到8.5,新增以下功能. (1)为输出文件选项-o,添加一个配套选项-b,允许 ...
- Codeforces Round #404 (Div. 2) C 二分查找
Codeforces Round #404 (Div. 2) 题意:对于 n and m (1 ≤ n, m ≤ 10^18) 找到 1) [n<= m] cout<<n; 2) ...
- JZYZOJ1379天才的约数和 数论 约数和
http://172.20.6.3/Problem_Show.asp?id=1379 易得n=a*b2/b1: 需要注意算出n之后要判断n的约数和是否等于a,这里需要用约数和定理递归,递归前求一下 ...