ZOJ 3469 Food Delivery
题目大意:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL;
const LL INF = 1e9+;
const LL maxn = 1e3+;
const LL MOD = 1e9+;
int dp[][maxn][maxn], sum[maxn];
struct node
{
int X, B;
bool friend operator < (node A, node B)
{
return A.X < B.X;
}
} P[maxn]; int main()
{
int n, v, x;
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 = ;
n ++;
memset(dp, , sizeof(dp));
memset(sum, , sizeof(sum));
sort(P+, P++n); sum[] = ;
for(int i=; i<=n; i++)
sum[i] = sum[i-] + P[i].B;
int Star; for(int i=; i<=n+; i++)
for(int j=; j<=n+; j++)
dp[][i][j] = dp[][i][j] = INF; for(int i=; i<=n; i++)
{
if(P[i].X == x)
{
Star = i;
break;
}
}
dp[][Star][Star] = dp[][Star][Star] = ;
for(int i=Star; i>=; i--)
for(int j=Star; j<=n; j++)
{
dp[][i][j] = min(dp[][i][j], dp[][i+][j] + (P[i+].X - P[i].X)*(sum[n]-sum[j]+sum[i]) );
dp[][i][j] = min(dp[][i][j], dp[][i+][j] + (P[j].X - P[i].X)*(sum[n]-sum[j]+sum[i]) ) ;
dp[][i][j] = min(dp[][i][j], dp[][i][j-] + (P[j].X - P[i].X)*(sum[n]-sum[j-]+sum[i-]) );
dp[][i][j] = min(dp[][i][j], dp[][i][j-] + (P[j].X - P[j-].X)*(sum[n] - sum[j-] + sum[i-]) );
}
printf("%d\n", min(dp[][][n],dp[][][n])*v);
}
return ;
}
ZOJ 3469 Food Delivery的更多相关文章
- zoj 3469 Food Delivery 区间dp + 提前计算费用
Time Limit: 2 Seconds Memory Limit: 65536 KB When we are focusing on solving problems, we usual ...
- ZOJ - 3469 Food Delivery (区间dp)
When we are focusing on solving problems, we usually prefer to stay in front of computers rather tha ...
- ZOJ 3469 Food Delivery 区间DP
这道题我不会,看了网上的题解才会的,涨了姿势,现阶段还是感觉区间DP比较难,主要是太弱...QAQ 思路中其实有贪心的意思,n个住户加一个商店,分布在一维直线上,应该是从商店开始,先向两边距离近的送, ...
- ZOJ 3469 Food Delivery(区间DP)
https://vjudge.net/problem/ZOJ-3469 题意:在一条直线上有一个餐厅和n个订餐的人,每个人都有随时间上升的不满意值,从餐厅出发,计算出送完时最小的不满意值总和. 思路: ...
- ZOJ 3469 Food Delivery(区间DP好题)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4255 题目大意:在x轴上有n个客人,每个客人每分钟增加的愤怒值不同. ...
- ZOJ 3469 Food Delivery (区间DP,经典)
题意: 在x轴上有一家外卖餐馆,有n个顾客站在x轴上不同坐标上且叫了外卖,每个人的脾气不同,每1分钟没有收到外卖就会增加Fi点愤怒值,而外卖小哥的车是有速度的v-1/分钟,问怎样的送餐次序会让所有顾客 ...
- Food Delivery ZOJ - 3469(区间dp)
题目传送门 题目翻译:当我们专注于解决问题时,我们通常宁愿呆在电脑前而不是外出吃午饭.在这个时候,我们可能会要求提供食物. 假设有N个人生活在一条直线的街道上,它只是位于X坐标轴上.第i个人的坐标是X ...
- ZOJ 3469 区间DP Food Delivery
题解 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm ...
- zoj 3469 区间dp **
题意:有一家快餐店送外卖,现在同时有n个家庭打进电话订购,送货员得以V-1的速度一家一家的运送,但是每一个家庭都有一个不开心的值,每分钟都会增加一倍,值达到一定程度,该家庭将不会再订购外卖了,现在为了 ...
随机推荐
- oracle中的层级递归查询操作
oracle中的层级操作非常方便,在使用之后爱不释手,以前要实现该种数据查询操作,需要非常复杂的实现过程.在oracle中通过connect by可以实现前面的目的,通常情况下层级查询基本都能实现递归 ...
- List<T>取交集、差集、并集
1. 取交集 (A和B都有) List A : { 1 , 2 , 3 , 5 , 9 }List B : { 4 , 3 , 9 }var intersectedList = list1.Inte ...
- 效果类似于label从下往上滑(采用uiTableView实现)
首先附上效果图 进行描述一下:效果就是类似于是一个竖直方向的滚动视图 并且方向是从下往上 并且能够一直这样循环下去. 代码“ // // ViewController.m // demo滚动视图上下 ...
- ajax跨域传值
<script type="text/javascript"> function xmlpage(){ $.ajax({ url:'http://localhost/3 ...
- SOAPUI请求及mockservice 使用
1.新建soap Project,输入wsdl的地址,运行request 2 ...
- 258. Add Digits(C++)
258. Add Digits Given a non-negative integer num, repeatedly add all its digits until the result has ...
- mysql基础操作整理(一)
显示当前数据库 mysql> select database(); +------------+ | database() | +------------+ | test | +-------- ...
- Servlet监听器类型
------------------------serlvet对象监听器------------------------------------------- request监听器(ServletRe ...
- iOS把两张图片合成一张图片
0x00 步骤 先读取两张图片把创建出CGImageRef 创建上下文画布 把图片依次画在画布指定位置上 从上下文中获得合并后的图片 关闭上下文 释放内存 0x01 代码实现 - (void)comp ...
- 利用WebRequest类上传文件
说明:1.WebRequest类是一个抽象类,所以上传类实际使用的是其子类 2.打开Fiddler软件,监视正常网页的文件上传,可以看到http协议的请求和响应信息,简略说明 (第一行:请求说明 PO ...