https://vjudge.net/problem/ZOJ-3469

题意:
在一条直线上有一个餐厅和n个订餐的人,每个人都有随时间上升的不满意值,从餐厅出发,计算出送完时最小的不满意值总和。

思路:
这道题和UVa 1632这道题目很像,只不过1632可以从任一点出发,而这题必须从餐厅出发。1632每个坐标几秒之后就会消失,这题是每分钟不满意值会上升,比较类似,都是挺不错的区间DP题。

d[i][j][0]代表的是在送完i~j这个区间的最小不满意值,并且此时人处于左端,d[i][j][1]则是人处于右端。

状态转移的话看代码吧,d[i][j][]的话可以从d[i+1][j][]过来,也可以从d[i][j-1][]过来。

 #include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std; #define INF 0x3f3f3f3f
const int maxn = + ; int n, v, x; struct node
{
int x, b;
}p[maxn]; int sum[maxn];
int d[maxn][maxn][]; bool cmp(node a, node b)
{
return a.x < b.x;
} int main()
{
//freopen("D:\\txt.txt", "r", stdin);
while (cin >> n >> v >> x)
{
for (int i = ; i < n; i++)
cin >> p[i].x >> p[i].b; //出发点
p[n].x = x;
p[n].b = ;
sort(p, p + n +, cmp); for (int i = ; i <= n; i++)
for (int j = ; j <= n; j++)
d[i][j][] = d[i][j][] = INF; //前i个顾客的不满意度之和
sum[] = p[].b;
for (int i = ; i <= n; i++)
{
sum[i] = sum[i - ] + p[i].b;
} int k;
for (int i = ; i <= n; i++)
{
if (p[i].x == x)
{
d[i][i][] = d[i][i][] = ;
k = i;
break;
}
} for (int i = k; i >= ;i--)
for (int j = k; j <= n; j++)
{
if (i == j) continue;
d[i][j][] = min(d[i][j][], d[i + ][j][] + (p[i + ].x - p[i].x)*(sum[n] + sum[i] - sum[j]));
d[i][j][] = min(d[i][j][], d[i + ][j][] + (p[j].x - p[i].x)*(sum[n] + sum[i] - sum[j]));
d[i][j][] = min(d[i][j][], d[i][j - ][] + (p[j].x - p[j - ].x)*(sum[n] - sum[j - ] + sum[i - ]));
d[i][j][] = min(d[i][j][], d[i][j - ][] + (p[j].x - p[i].x)*(sum[n] - sum[j - ] + sum[i - ]));
}
cout << min(d[][n][], d[][n][])*v << endl;
}
}

ZOJ 3469 Food Delivery(区间DP)的更多相关文章

  1. ZOJ 3469 Food Delivery 区间DP

    这道题我不会,看了网上的题解才会的,涨了姿势,现阶段还是感觉区间DP比较难,主要是太弱...QAQ 思路中其实有贪心的意思,n个住户加一个商店,分布在一维直线上,应该是从商店开始,先向两边距离近的送, ...

  2. zoj 3469 Food Delivery 区间dp + 提前计算费用

    Time Limit: 2 Seconds      Memory Limit: 65536 KB When we are focusing on solving problems, we usual ...

  3. ZOJ - 3469 Food Delivery (区间dp)

    When we are focusing on solving problems, we usually prefer to stay in front of computers rather tha ...

  4. ZOJ 3469 Food Delivery(区间DP好题)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4255 题目大意:在x轴上有n个客人,每个客人每分钟增加的愤怒值不同. ...

  5. ZOJ 3469Food Delivery(区间DP)

    Food Delivery Time Limit: 2 Seconds      Memory Limit: 65536 KB When we are focusing on solving prob ...

  6. ZOJ3469 Food Delivery —— 区间DP

    题目链接:https://vjudge.net/problem/ZOJ-3469 Food Delivery Time Limit: 2 Seconds      Memory Limit: 6553 ...

  7. [ZOJ]3541 Last Puzzle (区间DP)

    ZOJ 3541 题目大意:有n个按钮,第i个按钮在按下ti 时间后回自动弹起,每个开关的位置是di,问什么策略按开关可以使所有的开关同时处于按下状态 Description There is one ...

  8. ZOJ3469 Food Delivery 区间DP

    题意:有一家快餐店送外卖,现在同时有n个家庭打进电话订购,送货员得以V-1的速度一家一家的运送,但是每一个家庭都有一个不开心的值,每分钟都会增加一倍,值达到一定程度,该家庭将不会再订购外卖了,现在为了 ...

  9. ZOJ 3469 Food Delivery (区间DP,经典)

    题意: 在x轴上有一家外卖餐馆,有n个顾客站在x轴上不同坐标上且叫了外卖,每个人的脾气不同,每1分钟没有收到外卖就会增加Fi点愤怒值,而外卖小哥的车是有速度的v-1/分钟,问怎样的送餐次序会让所有顾客 ...

随机推荐

  1. C#静态类,静态构造函数,静态变量

    静态变量位于栈上,它是一个全局变量,在编译期就已经生成. public class Cow public static int count; private int id; { id = ++coun ...

  2. 流媒体ts/ps流封装/分析

    1.TS 1) 感谢星辰同学,还热乎着,

  3. (转)ArrayList和LinkedList的几种循环遍历方式及性能对比分析

    主要介绍ArrayList和LinkedList这两种list的五种循环遍历方式,各种方式的性能测试对比,根据ArrayList和LinkedList的源码实现分析性能结果,总结结论. 通过本文你可以 ...

  4. Jquery map()

    <!DOCTYPE html> <html> <head> <style>p { color:red; }</style> <scri ...

  5. Summary: difference between public, default, protected, and private key words

    According to Java Tutorial: Controlling Access to Members of a Class Access level modifiers determin ...

  6. 剑指offer2

    请实现一个函数,将一个字符串中的字符串空格替换成“%20”.例如:“We Are Happy”转化后为“We%20Are%20Happy” 思路:把字符串转化成字符数组,判断这个字符是不是空格,如果是 ...

  7. hdu6000 Wash ccpc-20162017-finals B Wash

    地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6000 题目: Wash Time Limit: 20000/10000 MS (Java/Ot ...

  8. Trove系列(五)—Trove的数据存储管理程序类型和版本管理功能介绍

    功能描述数据存储管理程序(Datastore)类型管理允许Trove的用户从操作者列出的名单中选择数据库存储管理程序和版本.操作者将可以控制数据库存储管理程序的类型,添加一个新的版本并去活一个老版本. ...

  9. EditPlus 4.3.2560 中文版已经发布

    新的版本修复了选中文本操作的一些问题. 下载连接在左上角!

  10. 20154312 曾林 EXP6 信息搜集与漏洞扫描

    目录 1.实验后回答问题 2.实验总结与体会 3.实践过程记录 --3.1.信息收集 ----3.1.1.whois查询 ----3.1.2.nslookup,dig查询 ----3.1.3.trac ...