[DP]BuildingShops转载
原创Building Shops
Problem Description
HDU’s n classrooms are on a line ,which can be considered as a number line. Each classroom has a coordinate. Now Little Q wants to build several candy shops in these n classrooms.
The total cost consists of two parts. Building a candy shop at classroom i would have some cost c i . For every classroom P without any candy shop, then the distance between P and the rightmost classroom with a candy shop on P s left side would be included in the cost too. Obviously, if there is a classroom without any candy shop, there must be a candy shop on its left side.
Now Little Q wants to know how to build the candy shops with the minimal cost. Please write a program to help him.
Input
The input contains several test cases, no more than 10 test cases.
In each test case, the first line contains an integer n ( 1 ≤ n ≤ 3000 ) , denoting the number of the classrooms.
In the following n lines, each line contains two integers x i , c i ( − 10 9 ≤ x i , c i ≤ 10 9 ) , denoting the coordinate of the i -th classroom and the cost of building a candy shop in it.
There are no two classrooms having same coordinate.
Output
For each test case, print a single line containing an integer, denoting the minimal cost.
Sample Input
3
1 2
2 3
3 4
4
1 7
3 1
5 10
6 1
Sample Output
5
11
正确的解决方案。正确的解决方案。
作者:谷爱伦和雷-雷耶斯作者:顾爱伦和雷-雷耶斯作者:谷爱伦和雷-雷斯作者:谷爱伦和雷-雷伊斯
1.每间教室建造一间糖果屋的成本是ci
2.空置教室的成本等于空置教室的成本 距离左侧最近的糖果屋距离左侧最近的糖果屋
我们用DP来做,f[i][1]表示第i建造糖果屋,在建造糖果屋之前,先建造一个糖果屋,以前i个的成本
f[i][0]表示第 i 没有糖果屋,在没有糖果屋之前,在没有糖果屋之前,在i个人的成本。个人的代价。一张单人票的价格。每个人的成本。
得出结论很容易得出结论很容易得出结论 f[i][1]=min(f[i-1][1],f[i-1][0])+ci;
f[i][0]=min(f[j][1]+ (j+1,j+2 ……,i 到j的距离))
ll t=0; for(int j=i-1;j>=1;j--) { t+=(i-j)*(a[j+1].x-a[j].x); f[i][0]=min(f[i][0],f[j][1]+t); }
接近的悖论近距离的悖论邻近悖论近距离悖论xi和ci 是(1,10^9) 开了 ll
1 #include
View Code
转载于:https://www.cnblogs.com/Kaike/p/10912551.html
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除