HDU 6024 Building Shops
$dp$。
$dp[i]$表示到$i$位置,且$i$位置建立了的最小花费,那么$dp[i] = min(dp[k]+cost[i+1][k-1])$,$k$是上一个建的位置。最后枚举$dp[i]$,加上最后一段的花费,取个最小值即可。
#include <bits/stdc++.h>
using namespace std;
const long long mod=1e9+;
const long long inf=1e18;
int n;
struct X
{
long long pos;
long long cost;
}s[]; bool cmp(X a,X b)
{
return a.pos<b.pos;
}
long long len[],dp[]; int main()
{
while(~scanf("%d",&n))
{
for(int i=;i<=n;i++)
{
scanf("%lld%lld",&s[i].pos,&s[i].cost);
}
sort(s+,s++n,cmp);
len[]=;
for(int i=;i<=n;i++)
{
len[i]=len[i-]+s[i].pos-s[].pos;
}
for(int i=;i<=n;i++) dp[i]=inf;
dp[]=s[].cost;
for(int i=;i<=n;i++)
{ for(int j=;j<i;j++)
{
if(j==i-)
dp[i]=min(dp[i],dp[j]+s[i].cost);
else
dp[i]=min(dp[i],s[i].cost+dp[j]+len[i-]-len[j]-(i--j)*(s[j].pos-s[].pos));
}
}
long long ans=inf;
for(int i=;i<=n;i++)
{
if(i==n) ans=min(ans,dp[n]);
else ans=min(ans,dp[i]+len[n]-len[i]-(n-i)*(s[i].pos-s[].pos));
}
printf("%lld\n",ans);
}
return ;
}
HDU 6024 Building Shops的更多相关文章
- HDU 6024 Building Shops (简单dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6024 题意:有n个room在一条直线上,需要这这些room里面建造商店,如果第i个room建造,则要总 ...
- HDU6024 Building Shops 2017-05-07 18:33 30人阅读 评论(0) 收藏
Building Shops Time Limit: 2000/1000 MS ...
- HDU6024:Building Shops(简单DP)
Building Shops Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- HDU 5033 Building(单调栈)
HDU 5033 Building(单调栈) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5033 Description Once upon a ti ...
- HDU—— 5159 Building Blocks
Problem Description After enjoying the movie,LeLe went home alone. LeLe decided to build blocks. LeL ...
- (hdu 6024) Building Shops
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6024 Problem Description HDU’s n classrooms are on a ...
- Building Shops
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submissi ...
- HDU 5033 Building
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5033 解题报告:在一条x轴上有n个建筑物,每个建筑物有一个高度h,然后现在有q次查询,查询的内容是假设 ...
- hdu 2818 Building Block
Building Block Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
随机推荐
- 基于packstack的openstack单节点安装
一.安装源处理 1.更新base源为网易的源 cd /etc/yum.repos.d/ wget http://mirrors.163.com/.help/CentOS6-Base-163.repo ...
- Tensorflow BatchNormalization详解:1_原理及细节
Batch Normalization: 原理及细节 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 吴恩达deeplearningai课程 课程笔记 Udacity课程 为了标准化 ...
- sourceTree的下载与安装
一. SourceTree是什么? 一个拥有可视化界面的项目版本控制的软件,适用于git项目管理,在window和mac均可使用. 二. SourceTree下载 下载地址:SourceTree官网 ...
- JS数字计算精度问题解决
add(a, b) {//相加 var c, d, e; try { c = a.toString().split(".")[1].length; } catch (f) { c ...
- JAVA多线程提高十二:阻塞队列应用
一.类相关属性 接口BlockingQueue<E>定义: public interface BlockingQueue<E> extends Queue<E> { ...
- [译] man 7 pthreads
NAME pthreads - POSIX threads DESCRIPTION POSIX.1 指定了一组叫做POSIX线程或Pthreads的编程接口(函数,头文件).单 ...
- LintCode 156: Merge Interval
LintCode 156: Merge Interval 题目描述 给出若干闭合区间,合并所有重叠的部分. 样例 给出的区间列表 => 合并后的区间列表: [ [ [1, 3], [1, 6], ...
- ThinkPHP的输出和模型使用
1.假设在v层需要输出一个变量怎么办呢?即如同在html当中输出php代码. 可以直接使用{$name}代替.花括号被称之为标识符.可以通过修改配置项('TMPL_L_DELIM'=>'< ...
- Java并发编程(二)
1.Lock接口 在Lock接口出现之前,Java程序是靠synchronized关键字实 ...
- MAC和PHY的区别
一块以太网网卡包括OSI(开方系统互联)模型的两个层.物理层和数据链路层.物理层定义了数据传送与接收所需要的电与光信号.线路状态.时钟基准.数据编码和电路等,并向数据链路层设备提供标准接口.数据链路层 ...