ZOJ 3469 Food Delivery

保姆级教程:用Anaconda+PyCharm搞定YOLOv8本地部署(附避坑指南) 本文提供了一份详细的YOLOv8本地部署指南,涵盖Anaconda环境配置、PyCharm集成到模型部署的全过程。特别针对国内开发者需求,整合了镜像加速和常见报错解决方案,帮助快速完成目标检测模型的本地部署与实战应用。 阅读详情

 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3469


Food Delivery

Time Limit: 2 Seconds      Memory Limit: 65536 KB

When we are focusing on solving problems, we usually prefer to stay in front of computers rather than go out for lunch. At this time, we may call for food delivery.

Suppose there are N people living in a straight street that is just lies on an X-coordinate axis. Theith person's coordinate is Xi meters. And in the street there is a take-out restaurant which has coordinatesX meters. One day at lunchtime, each person takes an order from the restaurant at the same time. As a worker in the restaurant, you need to start from the restaurant, send food to theN people, and then come back to the restaurant. Your speed is V-1 meters per minute.

You know that the N people have different personal characters; therefore they have different feeling on the time their food arrives. Their feelings are measured byDispleasure Index. At the beginning, the Displeasure Index for each person is 0. When waiting for the food, theith person will gain Bi Displeasure Index per minute.

If one's Displeasure Index goes too high, he will not buy your food any more. So you need to keep the sum of all people'sDispleasure Index as low as possible in order to maximize your income. Your task is to find the minimal sum ofDispleasure Index.

Input

The input contains multiple test cases, separated with a blank line. Each case is started with three integersN ( 1 <= N <= 1000 ), V ( V > 0), X (X >= 0 ), then N lines followed. Each line contains two integersXi ( Xi >= 0 ), Bi ( Bi >= 0), which are described above.

You can safely assume that all numbers in the input and output will be less than 231 - 1.

Please process to the end-of-file.

Output

For each test case please output a single number, which is the minimal sum of Displeasure Index. One test case per line.

Sample Input

5 1 0
1 1
2 2
3 3
4 4
5 5

Sample Output

55


题意:

一条直线上有n个人点外卖。每个人都有一个坐标xi。每个人都有一个不开心值,每过一秒不开心值增加一倍,初始值都为0。外卖小哥初始在点x上,以速度v-1给这直线上的n个人送外卖。求不开心值总和最少多少。

解题思路:

先把起始位置放到x坐标里面。然后从起始位置开始向左右送餐.

设dp[i][j][k]表示从第i个人到第j个人都已经送完餐最后停在 k== 0 在左边,k == 1 在右边的最不满值。

dp[i][j][0] 可能从dp[i+1][j][0],dp[i+1][j][1] (i+1在i右边,两个都在i左边)转移而来,dp[i][j][1]可能从dp[i][j-1][0],dp[i][j-1][1]转移而来。具体状态转移方程参见代码。

然后特别要注意的是每转移一次,都会增加一定的时间,后面的人拿到餐的时间也晚了,也就是说必须把对后面的影响考虑在当前状态下,并且对后面的每个人影响都是一样的,那么当前转移用时t,后面还有x(i-j区间之外)人,当前的状态就要多加 x * t,

人在左边,目标也在左边的状态转移方程:

dp[i][j][0]=min(dp[i][j][0],dp[i+1][j][0]+(sum[i]+sum[n]-sum[j])*(ord[i+1].x-ord[i].x));

人在左边,目标在右边的状态转移方程:

dp[i][j][0]=min(dp[i][j][0],dp[i+1][j][1]+(sum[i]+sum[n]-sum[j])*(ord[j].x-ord[i].x));

人在右边,目标也在右边的状态转移方程:

dp[i][j][1]=min(dp[i][j][1],dp[i][j-1][0]+(sum[i-1]+sum[n]-sum[j-1])*(ord[j].x-ord[i].x));

人在右边,目标在左边的状态转移方程:

dp[i][j][1]=min(dp[i][j][1],dp[i][j-1][1]+(sum[i-1]+sum[n]-sum[j-1])*(ord[j].x-ord[j-1].x));

复杂度分析:

时间复杂度 :O(n∗n)
空间复杂度 :O(n∗n)


#include<iostream>
 #include<cstdio>
 #include<cstring>
 #include<cmath>
 #include<algorithm>
 using namespace std;
 #define INF 1e9
 const int maxn=1010;
 int sum[maxn];
 int dp[maxn][maxn][3];
 struct node{
    int x;
    int b;
}a[maxn];

bool cmp(node a,node b)
{
    return a.x<b.x;
}
int main()
{
    int n,v,x;
    while(cin>>n>>v>>x)
    {
        for(int i=1;i<=n;i++)
        {
            cin>>a[i].x>>a[i].b;
        }
        n++;
        a[n].x=x;
        a[n].b=0;
        sort(a+1,a+n+1,cmp);
        for(int i=0;i<=n;i++){
            for(int j=0;j<=n;j++){
                dp[i][j][0]=dp[i][j][1]=INF;
           }
        }
        sum[0]=0;
        for(int i=1;i<=n;i++)
        {
            sum[i] =sum[i-1]+a[i].b;
        }
        int res;
        for(int i=1;i<=n;i++)
        {
            if(a[i].x==x){
                res=i;
                break;
            }
        }
        dp[res][res][0]=dp[res][res][1]=0;
        for(int i=res;i>=1;i--)
        {
            for(int j=res;j<=n;j++)
            {
                if(i==j) continue;
                dp[i][j][0]=min(dp[i][j][0],dp[i+1][j][0]+(sum[i]+sum[n]-sum[j])*(a[i+1].x-a[i].x));
                dp[i][j][0]=min(dp[i][j][0],dp[i+1][j][1]+(sum[i]+sum[n]-sum[j])*(a[j].x-a[i].x));
                dp[i][j][1]=min(dp[i][j][1],dp[i][j-1][0]+(sum[i-1]+sum[n]-sum[j-1])*(a[j].x-a[i].x));
                dp[i][j][1]=min(dp[i][j][1],dp[i][j-1][1]+(sum[i-1]+sum[n]-sum[j-1])*(a[j].x-a[j-1].x));
            }
        }
        cout<<v*min(dp[1][n][0],dp[1][n][1]) << endl;
    }
    return 0;
}



【知识分享】什么是同轴传输线结构? 同轴传输线的几何形状由中心导体组,嵌在介电材料(Dielectric)中,并且,被连续的外导体所包围,也被称为屏蔽(Shield)。内外导体有相同的几何中心轴,因此得名同轴(Coaxial)。 阅读详情

相关推荐

从零到一:OptimizePI Pre-layout PDN前仿真实战指南

本文详细介绍了如何使用OptimizePI进行电源完整性(PDN)前仿真,从软件安装配置到元器件建模、去耦电容配置及仿真参数设置,提供了实战技巧和常见问题排查指南。通过OptimizePI的Pre-layout仿真,工程师可以在PCB布局前优化电源分配网络,显著提升设计效率并降低成本。

weixin_28304023的博客 506

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

Time Limit:2 Seconds Memory Limit:65536 KB When we are focusing on solving problems, we usually prefer to stay in front of computers rather than go out for lunch. At this time, we may call for...

weixin_33851604的博客 159

魔改xjar支持springboot3,

其实这里基本就没问题了,实际项目中只要把这个spring-core包从私仓中替换,项目加密也就没有太大的毛病,但是这样对于追求完美的我来说,方便性还差点。原因找到了,看了下springboot github的issue,官方确实变更了,原因是因为springboot2中的。xjar项目文档还是不错的,clone下来,跟着文档,很容易就测试并通过了我的测试项目,于是便推给其他同事使用了。方法,那么问题来了,为啥springboot2没问题,spring3读取出来的却又是加密的,这是为毛?

jioulongzi的专栏 1537

Food Delivery ZOJ - 3469

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3469 按区间DP做 dp[i][j][0]代表i到j都处理完后停在左端i处dp[i][j][1]代表停在右端j处 转移方程如下 dp[i][j][0]=min(dp[i][j][0],dp[i+1][j][0]+(ary[i+1].pos-ary[i].pos)*(...

sunyutian1998的博客 235

Opencv2.4.9源码分析——HoughCircles

图形可以用一些参数进行表示,标准霍夫变换的原理就是把图像空间转换成参数空间(即霍夫空间),例如霍夫变换的直线检测就是在距离-角度空间内进行检测。圆可以表示成: (x-a)2+(y-b)2=r2                   (1) 其中a和b表示圆心坐标,r表示圆半径,因此霍夫变换的圆检测就是在这三个参数组成的三维空间内进行检测。 原则上,霍夫变换可以检测任何形状。但复杂的形状需要的

赵春江的专栏 3万+

Telegram 担保交易系统搭建指南:安全可靠的交易流程实现

本文介绍了基于Telegram Bot API搭建担保交易系统的完整方案。该系统通过第三方资金托管机制解决买卖双方信任问题,支持"付款后发货"和"收货后放款"的交易流程。文章详细阐述了系统架构设计,包括Telegram Bot交互层、后端业务逻辑层、数据库层和支付接口层。核心实现步骤涵盖:1)订单创建模块处理交易信息;2)支付处理模块集成Stripe Escrow实现资金托管;3)确认收货模块完成资金划转。系统采用PostgreSQL存储交易数据,并通过FastAPI

jingpide9527的博客 1947

Food Delivery zoj 3469

dp[i][j][0]表示完成[i..j]段在i后到目标状态还需多少费用 dp[i][j][1]表示完成[i..j]段在j后到目标状态还需多少费用 http://blog.watashi.ws/1877/zojmonthly1102/ #include #include #include using namespace std; const int maxn=1015; const int

Yukar_syt的专栏 846

淋巴结病理数字玻片读取与处理代码

Whole-slide images are generally stored in a multi-resolution pyramid structure. 首先安装openslide模块 pip install openslide-python import os.path as osp import openslide from pathlib import Path...

猫头军师兵书 1276

校赛B - Food Delivery

#include &lt;iostream&gt; #include &lt;math.h&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; using namespace std; const int INF=0x3f3f3f3f; //无穷大 int a[1005]; int...

qq_41514794的博客 323

2011-2024年间各省数字普惠金融指数数据(覆盖广度、使用深度和数字化程度)

2、指标:数字金融普惠指数、数字金融覆盖广度指数、数字金融使用深度指数、普惠金融数字化程度指数、数字金融使用深度指数下属的支付、保险、货币基金、信用服务、投资、信贷等分类指数。中国各省的数字普惠金融指数数据,从数字金融覆盖广度、数字金融使用深度和普惠金融数字化程度3个维度来构建数字普惠金融指标体系。数字普惠金融指数一共3个维度、33项具体指标。全套指数包含数字金融覆盖广度指数、数字金融使用深度指数和普惠金融数字化程度指数,以及数字金融使用深度指数下属的支付、保险、货币基金、信用服务、投资、信贷等分类指数。

【优快云】 1万+

【Bug已解决】Codex 切换 model_provider 后历史会话消失的解决方案

方案适用场景推荐指数切回原 provider 验证排查的第一步,确认数据是否真的丢失⭐⭐⭐⭐⭐查看本地会话文件进一步确认数据完整性⭐⭐⭐⭐⭐查阅跨 provider 恢复命令官方是否提供了对应功能⭐⭐⭐使用社区辅助工具需要频繁切换 provider 的场景⭐⭐⭐定期备份配置目录任何场景下的通用保险措施⭐⭐⭐⭐切换后历史会话"消失"的本质是客户端的会话列表展示逻辑受当前活跃 provider 状态过滤,而不是原始数据文件被真正删除。

一键难忘的博客 5999

zoj3469Food Delivery[区间dp]

原题链接:               zoj 3469 Food Delivery 题目大意:   送餐员送餐问题。有n个人叫餐,每个人都在x轴上,并且每个人都有个XX度(和等餐时间有关,据说顾客认为xx值到一定程度他的小宇宙就要爆发).现在送餐员从x轴上的某点出发,路上奔跑速度是v^-1,要一次性把所有餐送完。叫餐的人得到餐的时间和顺序不同,xx度总和也就不同。合格的送餐员要让客户体验最

smallfish的专栏 542

【JAVA】海康威视门禁机ISAPI接口开发,人脸上传更新接口

本文实现了一个HTTP工具类HTTPClientUtil,提供GET/POST/PUT/DELETE请求方法,支持摘要认证。工具类封装了Apache HttpClient,设置连接超时、最大连接数等参数,通过DeviceInfoDTO传递设备IP、端口和认证信息。文中还展示了两个应用示例:userInfoAdd()用于添加人员信息,FaceDataRecordAdd()用于添加人脸数据,均通过POST请求与设备ISAPI接口交互。该工具类简化了HTTP请求处理,支持设备管理系统的集成开发。

qq_27246521的博客 587

区间dp -- Food Delivery ZOJ - 3469

Food Delivery ZOJ - 3469 题意: 在一条笔直的街道上有有一个餐馆和 n 户居民,每户居民都会在餐馆订餐,餐馆的坐标为X,参观送餐的速度是1 / V,每户居民都有两个属性x、 b,分别表示自己在街道上的坐标、单位时间内对餐馆送餐速度焦虑值。请你规划一种送餐策略,求所有居民对餐馆最小的焦虑值。 思路: 每次出发有两种选择,要么向左走到第一个没被送餐的居民,或者向右走到第一个没被送餐的顾客。 把餐馆两边的居民分为左右(l、r)两个部分,并按距离由近到远排好序。 dp[l][r]

dajiangyou123456的博客 201

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ZOJ - 3469 —— Food Delivery

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3469 这道题关键要找到一个规律:  派送任意一个区间[i,j]的用户,按照最优路线走,一定最后停留在该区间的两端处,即 i 和 j !!! 所以,就会有以下的状态设计,从而可以轻松写出状态转移方程了:   dp[i][j][0] := 派送区间[i,j]的用户并

AcIsFun的博客 650

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ZOJ-3469 Food Delivery

When we are focusing on solving problems, we usually prefer to stay in front of computers rather than go out for lunch. At this time, we may call for food delivery. Suppose there are N people living in a straight street that is just lies on an X-coordinate

misfound的博客 285

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ZOJ-3469 Food Delivery(区间dp)

F - Food Delivery  ZOJ - 3469  题意:在x轴上有n个客人,每个客人每秒增加的愤怒值不同。给出客人和餐厅的位置, 以及客人每分钟增加的愤怒值,和送餐行走一公里需要的时间,问送完n个客人的外卖最小愤怒值 题解:区间dp 先将所有客人的位置排序。 对于区间[i,j],可以发现:要走到i,必然是从i+1或者j出发才是最优的;同理j也是如此(

十分残念的博客 768

[ZOJ 3469]Food Delivery[记忆化搜索]

题目链接:[ZOJ 3469]Food Delivery[记忆化搜索] 题意分析: 送餐员需要从X处餐厅出发,去给顾客送食物,送餐员经过客户门口即可选择是否提交食物(所有食物已经都存放在外卖小哥手上了)。每个顾客随着等待时间的上升都会产生戾气,戾气值为bi每分钟,现在外卖员以V的-1次方米每分钟的速度送餐(也就是每米V分钟),问:最少造成的戾气值为多少? 解题思路: 设状态dp[i][j]

闲停 725

ZOJ3469 Food Delivery —— 区间DP

题目链接:https://vjudge.net/problem/ZOJ-3469 Food DeliveryTime Limit:2 Seconds Memory Limit:65536 KB When we are focusing on solving problems, we usually prefer to stay in front of comput...

alince20008的博客 135

ZOJ3469 Food Delivery(区间dp)

Description When we are focusing on solving problems, we usually prefer to stay in front of computers rather than go out for lunch. At this time, we may call for food delivery. Suppose there areNp...

邵光亮的博客 745

zoj 3469 Food Delivery

zoj 3469 Food Delivery 题面 一维数轴上有一个外卖配送员和 \(1000\) 个客户,每个客户 \(i\) 的怒气值是他收到外卖的时间乘 \(b[i]\) ( \(b[i]\) 由题目给定),给出配送员速度,求一个方案使得所有客户的怒气值之和最小,输出最小怒气值之和。 题解 收到货的客户一定处在连续的一段区间内,做法是区间dp。 我们用 \(v_i\) 表示第 \(i\) 个...

weixin_30735745的博客 148

zoj 3469 Food Delivery (好题)

题目描述:   在x轴上有n个客人叫外卖,每个顾客因为追的番更新进度不同,所以在等外买的时间里每秒增加的愤怒值不同。给出客人和餐厅的位置,以及客人每分钟增加的愤怒值,还有快递小哥的行走一公里需要的时间。问送完外卖后n个客人的最小愤怒值? 解题思路:   把餐厅所在的点加进去,然后按照在x轴上的位置排序。从餐厅所在位置向左右开始DP dp[i][j][0]表示从i到j用户送到最小不开

Ezereal的博客 639

ZOJ 3469Food Delivery(区间DP)

ZOJ 3469Food Delivery(区间DP)

Dacc123的博客 838

ZOJ3469-Food Delivery【区间DP】

题意:就是一个外卖小哥要给n个人送外卖,第i个人在xi位置,每隔一分钟他们就会有不满值bi,让你求怎样送外卖才会使得总不满值最小。 思路:我们将小哥也当做其中一个人,然后对其排序,用dp[i][j][0] 表示送完这个区间后停留在i位置,dp[i][j][1]表示停留在j位置,可以得到状态方程 dp[i][j][0] = min(dp[i][j][0], dp[...

独钓门前月 355

zoj 3469 Food Delivery(区间DP)

题目链接:3469想了挺长时间,发现区间DP题目的几个技巧1、在循环的时候需要注意开始的状态有无限制,这道题因为必须从饭店出发,所以不能简单的按照长度去DP,DP的时候优先考虑端点在饭店的情况。2、建立模型很重要,这几天做的几道区间DP题目,都需要抽象化出来然后建模解决。在这之中dp值的定义显得非常重要,还有状态的转移过程,和普通的DP有很大的差别。3、不要只拘泥于二维以下的dp。这道题就用了一个...

大乐的博客 325
上一篇: SGU 202 The Towers of Hanoi Revisited (DFS+预处理)
下一篇: HDU 1004 Let the Balloon Rise
hellohelloC
博客等级 码龄12年 15粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值