hoj 1005 fast food
来源:互联网 发布:9块9淘宝包邮 编辑:程序博客网 时间:2024/06/06 05:11
题意:有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][n]) ; } return 0 ;}
- hoj 1005 fast food
- HOJ 1005 ZOJ 1196 Fast food
- HOJ-1005 Fast Food(动态规划)
- Fast Food (1005)
- Problem 1005 Fast Food
- FOJ 1005 Fast Food
- Fast Food
- Fast Food in China
- ZJU 1196 Fast Food
- pku1485 Fast Food
- hdu 1227 fast food
- HDU 1227 Fast Food
- 662 - Fast Food
- uva 662 Fast Food
- hdu1227 Fast Food
- 662 - Fast Food
- zoj 1196 Fast Food
- hdu 1227 fast food
- 实用技巧(1):eclipse配色插件
- 设计模式C++学习笔记之一(Strategy策略模式)
- 一篇帖子
- FTP命令大全
- java设计模式笔记之简单工厂
- hoj 1005 fast food
- ubuntu 设置网络
- 【转载】使用异步 I/O 大大提高应用程序的性能
- Message: 系统未找到指定的资源与MSXML2.XMLHTTPClass.send错误...
- 风险回避、减轻、转移、接受,汇率风险
- 如何利用c中的指针实现两个8bit的数合并为16bit
- jni 写一个简单的photoshop
- 自定义linux命令提示符格式
- DestroyWindow