码迷,mamicode.com
首页 > 其他好文 > 详细

Food Delivery ZOJ - 3469 (区间dp)

时间:2017-08-26 13:44:22      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:blog   sed   names   style   min   nbsp   return   http   targe   

Food Delivery

 ZOJ - 3469 

题意:快递员送外卖,n个客户,起始位置为x,速度为v,每个客户单位时间不满意度增加hi,问最少增加多少不满意度。

每一个客户可能是从左侧送到或者从右侧送到。

技术分享
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define CLR(m,a) memset(m,a,sizeof(m))
 4 const int maxn=1010;
 5 const int inf=0x3f3f3f3f;
 6 int dp[maxn][maxn][2];
 7 int sum[maxn];
 8 struct Node{
 9     int x,h;
10     bool operator <(const Node &a)const {
11         return x<a.x;
12     }
13 }node[maxn];
14 
15 int main(){
16     int n,v,x;
17     while(scanf("%d%d%d",&n,&v,&x)!=EOF){
18         CLR(dp,inf);
19         CLR(sum,0);
20         node[0].x=x;
21         node[0].h=0;
22         for(int i=1;i<=n;i++){
23             scanf("%d%d",&node[i].x,&node[i].h);
24         }
25         sort(node,node+n+1);
26         sum[0]=node[0].h;
27         for(int i=1;i<=n;i++) sum[i]=sum[i-1]+node[i].h;
28         int k;
29         for(int i=0;i<=n;i++){
30             if(node[i].x==x){
31                 dp[i][i][0]=dp[i][i][1]=0;
32                 k=i;
33                 break;
34             }
35         }
36         for(int i=k;i>=0;i--){
37             for(int j=k;j<=n;j++){
38                 if(i==j) continue;
39                 dp[i][j][0]=min(dp[i][j][0],dp[i+1][j][0]+(sum[n]-(sum[j]-sum[i]))*(node[i+1].x-node[i].x));
40                 dp[i][j][0]=min(dp[i][j][0],dp[i+1][j][1]+(sum[n]-(sum[j]-sum[i]))*(node[j].x-node[i].x));
41                 dp[i][j][1]=min(dp[i][j][1],dp[i][j-1][0]+(sum[n]-(sum[j-1]-sum[i-1]))*(node[j].x-node[i].x));
42                 dp[i][j][1]=min(dp[i][j][1],dp[i][j-1][1]+(sum[n]-(sum[j-1]-sum[i-1]))*(node[j].x-node[j-1].x));
43             }
44         }
45         printf("%d\n",min(dp[0][n][0],dp[0][n][1])*v);
46     }
47 }
View Code

 

Food Delivery ZOJ - 3469 (区间dp)

标签:blog   sed   names   style   min   nbsp   return   http   targe   

原文地址:http://www.cnblogs.com/yijiull/p/7435041.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!