hdu 1227 Fast Food(DP)
题意:
X轴上有N个餐馆。位置分别是D[1]...D[N]。
有K个食物储存点。每一个食物储存点必须和某个餐厅是同一个位置。
计算SUM(Di-(离第i个餐厅最近的储存点位置))的最小值。
1 <= n <= 200, 1 <= k <= 30, k <= n
思路:
第K个储存点的位置如果确定,前K-1个储存点的位置是浮动的。有很多的重复子结构。DP的结构很明显。
dp[i][j]:第i个储存点放在第j个餐馆的位置所得到的最小值。
代码:
int n,k;
int pos[205];
int dp[35][205]; int calc(int pre,int now){
int ans=0;
rep(i,pre,now){
ans+=min( pos[i]-pos[pre],pos[now]-pos[i] );
}
return ans;
}
int calc2(int last){
int ans=0;
rep(i,last,n){
ans+=(pos[i]-pos[last]);
}
return ans;
} int main(){
int T=0;
while(scanf("%d%d",&n,&k)!=EOF,n||k){
rep(i,1,n) scanf("%d",&pos[i]); sort(pos+1,pos+1+n); mem(dp,inf);
dp[1][1]=0; rep(now,1,n-k+1){
dp[1][now]=0;
rep(j,1,now-1){
dp[1][now]+=(pos[now]-pos[j]);
}
}
rep(i,2,k){ //第i个depot
rep(now,i,n-k+i){ //第i个depot放置的编号
rep(pre,i-1,now-1){ //第i-1个depot放置的编号
dp[i][now]=min( dp[i][now],dp[i-1][pre]+calc(pre,now) );
}
}
} int ans=inf;
rep(last,k,n){
ans=min( ans,dp[k][last]+calc2(last) );
}
printf("Chain %d\n",++T);
printf("Total distance sum = %d\n\n",ans);
} return 0;
}
hdu 1227 Fast Food(DP)的更多相关文章
- HDU 5791:Two(DP)
http://acm.hdu.edu.cn/showproblem.php?pid=5791 Two Problem Description Alice gets two sequences A ...
- HDU 4833 Best Financing(DP)(2014年百度之星程序设计大赛 - 初赛(第二轮))
Problem Description 小A想通过合理投资银行理财产品达到收益最大化.已知小A在未来一段时间中的收入情况,描述为两个长度为n的整数数组dates和earnings,表示在第dates[ ...
- [ACM] HDU 1227 Fast Food (经典Dp)
Fast Food Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- HDU 4833 Best Financing (DP)
Best Financing Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 1422 重温世界杯(DP)
点我看题目 题意 : 中文题不详述. 思路 : 根据题目描述及样例可以看出来,如果你第一个城市选的是生活费减花费大于等于0的时候才可以,最好是多余的,这样接下来的就算是花超了(一定限度内的花超),也可 ...
- HDU 1176 免费馅饼(DP)
点我看题目 题意 : 中文题.在直线上接馅饼,能接的最多是多少. 思路 :这个题其实以前做过.....你将这个接馅饼看成一个矩阵,也不能说是一个矩阵,反正就是一个行列俱全的形状,然后秒当行,坐标当列, ...
- hdu 4055 Number String(dp)
Problem Description The signature of a permutation is a string that is computed as follows: for each ...
- 【HDU - 4345 】Permutation(DP)
BUPT2017 wintertraining(15) #8F 题意 1到n的排列,经过几次置换(也是一个排列)回到原来的排列,就是循环了. 现在给n(<=1000),求循环周期的所有可能数. ...
- HDU 5375 Gray code(DP)
题意:给一串字符串,里面可能出现0,1,?,当中问号可能为0或1,将这个二进制转换为格雷码后,格雷码的每位有一个权值,当格雷码位取1时.加上该位权值,求最大权值和为多少. 分析:比赛的时候愚了.竟然以 ...
随机推荐
- 第七章:网络优化与正则化(Part2)
文章相关 1 第七章:网络优化与正则化(Part1) 2 第七章:网络优化与正则化(Part2) 7.3 参数初始化 神经网络的参数学习是一个非凸优化问题.当使用梯度下降法来进行优化网络参数时,参数初 ...
- JavaScript进阶面向对象ES6
类和对象 对象:万物皆对象,对象是一个具体的事物,看得见摸得着的实物 对象是由属性和方法组成的: 属性:事物的特征,再对象中用属性来表示(常用名词) 方法:事物的行为,再对象中用方法来表示(常用动词) ...
- javascript/html 禁止图片缓存
更新图片, 如果图片的url没有改变, 刷新页面之后图片会使用缓存的图片 Solutions: * js改变图片链接 (添加get参数) // 假设当前这个图片的dom对象为img img.src + ...
- python学习1-博客-DB操作类
#学习python,准备写一个博客,第一天:在别人代码基础上写一个数据库操作的db.py1)python代码 #!/usr/bin/env python # -*- coding: UTF-8 -*- ...
- 三分钟图解 MVCC,看一遍就懂
前文我们介绍了 InnoDB 存储引擎在事务隔离级别 READ COMMITTED 和 REPEATABLE READ(默认)下会开启一致性非锁定读,简单回顾下:所谓一致性非锁定读就是每行记录可能存在 ...
- vivo全球商城-营销价格监控方案的探索
一.背景 现在日常官网商城的运营中有一定概率出现以下两个问题: 1)优惠信息未对齐 官网商城促销优惠的类型越来越多,能影响最终用户实付价的优惠就有抢购.满减.优惠券.代金券等.实际业务操作中存在不同促 ...
- Java 集合基础入门,看这篇就够了
集合 1.父接口:Collection java.util.Collection 是进行单对象保存的最大父接口,即每次利用 Collection 接口都只能保存一个对象信息.定义如下: public ...
- mysql8.0.20安装配置教程
mysql配置安装教程 1.下载mysql8.0.20安装包 下载地址: https://dev.mysql.com/downloads/mysql/.找到安装包后下载.(官网为英文,如果看不懂的小伙 ...
- Python技法-序列拆分
Python中的任何序列(可迭代的对象)都可以通过赋值操作进行拆分,包括但不限于元组.列表.字符串.文件.迭代器.生成器等. 元组拆分 元组拆分是最为常见的一种拆分,示例如下: p = (4, 5) ...
- Docker小白到实战之Docker Compose在手,一键足矣
前言 Docker可以将应用程序及环境很方便的以容器的形式启动,但当应用程序依赖的服务比较多,或是遇到一个大系统拆分的服务很多时,如果还一个一个的根据镜像启动容器,那就有点累人了,到这有很多小伙伴会说 ...