hoj 1005 fast food
2013-08-06 14:35
218 查看
题意:有n个饭店,从中选择k个建立仓库。给出n和k以及n个饭店的x坐标,每个饭店从离他最近的仓库获得资源,使得所有饭店到仓库的距离和最小。
思路:见代码
思路:见代码
#include <stdio.h> #include <math.h> //m[i,j]表示在前 j 个饭店建立 i 个仓库的最小距离和 //w[i,j]表示在 d[i..j]之间建立一个仓库的最小距离和 int w[201][201], m[31][201], d[201] ; int main() { int n, p, Case = 1 ; while ( scanf("%d%d", &n, &p) , n ) { int i, j, k, t ; for ( i = 1; i <= n; i++ ) scanf("%d", &d[i]) ; for ( i = 1; i <= n; i++ ) { w[i][i] = 0 ;//边界问题 for ( j = i + 1; j <= n; j++ ) { //奇数个建立在最中间那个,偶数个建立在中间2个都可以 w[i][j] = w[i][j - 1] + d[j] - d[(i + j) / 2] ; } } for ( j = 1; j <= n; j++ ) m[1][j] = w[1][j] ;//边界问题 for ( i = 2; i <= p; i++ ) { m[i][i] = 0 ; for ( j = i + 1; j <= n; j++ ) { m[i][j] = 100000000 ; for ( k = i - 1; k < j; k++ ) { //循环求解最小值 t = m[i - 1][k] + w[k + 1][j] ; if ( t < m[i][j] ) m[i][j] = t ; } } } printf("Chain %d\nTotal distance sum = %d\n\n", Case++, m[p] ) ; } return 0 ; }
相关文章推荐
- HOJ-1005 Fast Food(动态规划)
- HOJ-1005 Fast Food(动态规划)
- Fast Food (1005)
- Hoj 1005 利用矩阵计算线性递推式
- HOJ 1005题 题解
- FOJ-1005 Fast Food
- HOJ-1005
- Problem 1005 Fast Food
- ACM 1000 1003 1004 1005 1006
- hoj 1560 - Factovisors
- ZOJ1005 Jugs
- hoj 1062 General Search
- HOJ 1032
- I Think I Need a Houseboat 1005 PKU
- 1005
- HOJ 2816 Power Line
- hdu 1005 矩阵乘法
- mysql error 1005 can't create table'.\blog\category.frm'<errno:150>
- hoj 10511 、zoj 1962 ——100位数内的fibonacci
- mysql error 1005 create …… errno 121