【CH 5102】Mobile Service【DP】

SCHUNK SVH五指灵巧手 | 熵洛智能 雄克仿真五指机械手产品系列可以如人手操作那般完美地完成抓取操作。电子装置完全集成于腕关节中,使五指机械手几乎可以完成所有的人体手部动作。凭借带有9个驱动器的运动指骨,机械手可高精度地 执行多种抓取操作。富有弹性的抓取表面确保了对物体的可靠抓取。除了开启抓取和操作任务的全新领域之外,雄克还为在五指机械手的手势基础上进行人与机器人的交流开创了无限可能。编辑切换为居中添加图片注释,不超过 140 字(可选)产品特点:机械手有左手或右手两种版本适合移动应用耗能低,使用 24 V DC 在腕关节处完整集成了控制、调节 阅读详情

题目大意:

题目链接:http://contest-hunter.org:83/contest/0x50「动态规划」例题/5102 Mobile Service
有三个服务员和 m m m个地点,给定任意点到任意点的代价,求三个服务员在能到达所有地点的前提下总代价最小。


思路:

考虑深搜,把每种情况都求出来。(脑抽做法)

考虑费用流,所有点间依次建边,容量为1,代价为题目所给。(巨佬做法)
我不脑抽但也不是巨佬怎么办?
可以考虑蒟蒻做法DP。设 f [ i ] [ x ] [ y ] [ z ] f[i][x][y][z] f[i][x][y][z]为已经满足前 i i i个请求,三个服务员分别在 x , y , z x,y,z x,y,z的位置上的最小代价。但是时间复杂度 O ( m n 3 ) O(mn^3) O(mn3),不可取。
那么不甘心被卡的我们肯定会换一种算法一定会考虑优化DP。很容易发现,在第 i i i个请求中,无论是 x , y , z x,y,z x,y,z谁去完成这个请求,都肯定会到达请求的点,也就是说,第 i i i个请求完成后,一定有一个人在请求的位置。那么我们就可以不用考虑没有人在请求位置的点的情况,成功降下一维。
设 f [ x ] [ y ] f[x][y] f[x][y]表示在完成第 i i i个请求时,一个人在 x x x,一个人在 y y y,另外一个人在 w [ i ] w[i] w[i]时的最小代价。那么有三个方程(因为三个人都可能去):
f [ k ] [ i ] [ j ] = m i n ( f [ k ] [ i ] [ j ] , f [ k − 1 ] [ i ] [ j ] + w [ a s k [ k − 1 ] ] [ a s k [ k ] ] ) f[k][i][j]=min(f[k][i][j],f[k-1][i][j]+w[ask[k-1]][ask[k]]) f[k][i][j]=min(f[k][i][j],f[k−1][i][j]+w[ask[k−1]][ask[k]])
f [ k ] [ a s k [ k − 1 ] ] [ j ] = m i n ( f [ k ] [ a s k [ k − 1 ] ] [ j ] , f [ k − 1 ] [ i ] [ j ] + w [ i ] [ a s k [ k ] ] ) f[k][ask[k-1]][j]=min(f[k][ask[k-1]][j],f[k-1][i][j]+w[i][ask[k]]) f[k][ask[k−1]][j]=min(f[k][ask[k−1]][j],f[k−1][i][j]+w[i][ask[k]])
f [ k ] [ i ] [ a s k [ k − 1 ] ] = m i n ( f [ k ] [ i ] [ a s k [ k − 1 ] ] , f [ k − 1 ] [ i ] [ j ] + w [ j ] [ a s k [ k ] ] ) f[k][i][ask[k-1]]=min(f[k][i][ask[k-1]],f[k-1][i][j]+w[j][ask[k]]) f[k][i][ask[k−1]]=min(f[k][i][ask[k−1]],f[k−1][i][j]+w[j][ask[k]])


代码:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

int f[1001][201][201],n,m,w[201][201],ask[1001],ans;

int main()
{
	memset(f,0x3f3f3f3f,sizeof(f));
	scanf("%d%d",&n,&m);
	for (int i=1;i<=n;i++)
	 for (int j=1;j<=n;j++)
	  scanf("%d",&w[i][j]);
	for (int i=1;i<=m;i++)
	 scanf("%d",&ask[i]);
	f[0][1][2]=w[3][ask[1]];
	f[0][2][3]=w[1][ask[1]];
	f[0][1][3]=w[2][ask[1]];  //直接处理1的情况
	for (int k=1;k<=m;k++)
	 for (int i=1;i<=n;i++)
	  if (ask[k-1]!=i)
	   for (int j=1;j<=n;j++)
	    if (ask[k-1]!=j)
	     if (i!=j)
	     {
	     	f[k][i][j]=min(f[k][i][j],f[k-1][i][j]+w[ask[k-1]][ask[k]]);
	     	f[k][ask[k-1]][j]=min(f[k][ask[k-1]][j],f[k-1][i][j]+w[i][ask[k]]);
	     	f[k][i][ask[k-1]]=min(f[k][i][ask[k-1]],f[k-1][i][j]+w[j][ask[k]]);
	     }
	ans=2147483647;
	for (int i=1;i<=n;i++) 
	 for (int j=1;j<=n;j++)
	  ans=min(ans,f[m][i][j]);
	printf("%d\n",ans);
	return 0;
}
代谢组数据分析(零):从质谱样本制备到MaxQuant搜库(蛋白质组和代谢组) 本文详细介绍了代谢组数据分析的过程,从LC-MS/MS技术的样本制备、分离、质谱鉴定到MaxQuant软件的使用。LC-MS/MS包括样本制备、液相色谱分离、质谱上机和鉴定等步骤。MaxQuant在蛋白质定性和定量中扮演关键角色,通过搜库和数据处理提供精准结果。此外,文章还涉及了数据采集模式、质谱图谱解析、数据库和软件选择以及结果评估等方面 阅读详情

相关推荐

U24时钟信号上升下降沿出现非单调性--简单分析

交换机U24时钟信号上升下降沿出现非单调性--简单分析

qq_45185504的博客 1132

CH 5102 动态规划 维度最小化

本题思路来源于 李煜东《算法竞赛进阶指南》 直接的状态就是记录已经完成的请求数量 以及三个服务员的位置表示已经完成的任务数,x,y,z分别表示三个服务员的位置 这样的话 时间和空间的复杂度 就是 1000*200^3 显然无法承受 那我们能不能缩小表示一个状态所用的维度呢 我们知道当第个任务完成后 肯定会有一个人在这个位置 那我们其实只要维护两个人的位置 另一个人肯定在...

weixin_43824564的博客 265

Python环境搭建和LabVIEW中的调用

本文主要介绍Python相关的环境搭建、Anaconda的使用以及在LabVIEW中调用Python的方法。

lvxisi的博客 6390

【题解】CH5102 Mobile Service 线性DP

题目链接 描述 一个公司有三个移动服务员,最初分别在位置 1,2,31,2,31,2,3 处。 如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去。某一时刻只有一个员工能移动,且不允许在同样的位置出现两个员工。从 ppp 到 qqq 移动一个员工,需要花费 c(p,q)c(p,q)c(p,q)。这个函数不一定对称,但保证 c(p,p)=0c(p,p)=0c(p,p)=...

翻过这座山,他们就会听到你的故事 851

小米15修复“NV损坏” 去除主板校验电阻步骤解析与图示

小米15系列将搭载骁龙8至尊版处理器,采用台积电3nm工艺。文章分析了手机出现"NV损坏"故障的表现及修复方法,包括通信异常、系统启动问题等典型症状,并介绍了去除主板校验电阻和刷写工程固件两种修复方案。重点讲解了去除主板电阻后刷写QCN文件的操作流程,强调在维修过程中需要结合分析与思考。适用于小米15系列特定机型(24129PN74G/I/C)的硬件修复。

小马哥的专栏 314

无刷电机FOC硬件电路设计

本文先对MIT无刷电机FOC硬件电路分析做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章软件程序在我另外一个博客【嵌入式–伺服电机】MIT无刷电机FOC驱动程序分析。

qq_35635374的博客 574

CH5102 Mobile Service(dp+降维)

题意:《算法竞赛进阶指南》P269。 分析:《算法竞赛进阶指南》P269-270。 代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int L = 206, N = 1006...

常胜将军的博客 332

基于LLaMA-action模型的文档摘要任务微调

文档摘要是指从长文档中提取关键信息,生成简短而准确的总结。抽取式摘要:从原文中直接抽取关键句子或短语组成摘要。生成式摘要:通过生成新的句子来表达原文的核心内容。混合式摘要:结合抽取式和生成式方法,既保留原文的关键句子,又生成新的内容。新闻网站:自动生成新闻摘要,帮助用户快速了解新闻要点。社交媒体:为用户提供新闻摘要,便于分享和传播。学术搜索引擎:为用户提供学术文献的摘要,帮助用户快速筛选相关文献。学术写作辅助:帮助研究人员快速生成文献综述部分。企业内部文档管理:自动生成文档摘要,便于员工快速了解文档内容。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1431

CH5102 NCSTOJ1437 Mobile Server —— 线性DP降维

Description 一个公司有三个移动服务员,最初分别在位置1,2,3处。 如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去。某一时刻只有一个员工能移动,且不允许在同样的位置出现两个员工。从 p 到 q 移动一个员工,需要花费 c(p,q)。这个函数不一定对称,但保证 c(p,p)=0。 给出N个请求,请求发生的位置分别为 p1p_1p1​~pNp_NpN​。公...

zhaohaibo的博客 432

基于Python的FAO农业数据高效爬取与分析实战:从Scrapy到异步爬虫的进阶之路

本文将详细介绍如何使用Python最新技术爬取联合国粮农组织(FAO)的农业数据,涵盖从基础爬虫到高级异步爬虫的完整实现过程。文章包含5000余字的技术解析,提供完整的代码示例,并探讨数据处理与存储的最佳实践。

2201_76125261的博客 241

以阿克曼转向车为例对URDF和XACRO文件进行解读

   最近我在古月学院购买了在Gazebo中实现阿克曼转向车的仿真课程,课程资料的阿克曼小车的XACRO文件在Gazebo里加载的时候报了三个错误,在这之前,我没接触过URDF或XACRO文件,本篇文章就以这个阿克曼小车的XACRO文件为例,对URDF或XACRO文件的格式和内容进行解读,期望经过解读和学习,找到错误原因及所在,并解决这三个错误    先来放一下上面右图所示的模型的完整的XACRO文件: <?xml version="1.0"?> <!-- racecar.urdf.x

慕羽★的博客 3702

[CH5102]Mobile Service

原题 题目描述: 一个公司有三个移动服务员,最初分别在位置1,2,3处。 如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去。某一时刻只有一个员工能移动,且不允许在同样的位置出现两个员工。从 \(p\) 到 \(q\) 移动一个员工,需要花费 \(c(p,q)\)。这个函数不一定对称,但保证 \(c(p,p)=0\)。 给出N个请求,请求发生的位置分别为 \(p_1\...

weixin_30604651的博客 187

跨境电商产品信息抓取:使用Python爬虫进行市场分析

跨境电商平台是指为不同国家和地区的买卖双方提供在线交易服务的电子商务平台。亚马逊(Amazon):全球最大的电商平台之一,提供丰富的商品种类和全球配送服务。eBay:全球知名的在线拍卖和购物网站,支持个人和企业卖家。速卖通(AliExpress):阿里巴巴旗下的跨境电商平台,主要面向全球消费者提供中国制造的商品。Wish:以移动端为主的跨境电商平台,主打低价商品和个性化推荐。这些平台上的商品数据包括商品名称、价格、销量、用户评价、库存等信息,对于市场分析具有重要价值。

2201_76125261的博客 1233

CH 5102 Mobile Service(线性DP)

CH 5102 Mobile Service \(solution:\) 这道题很容易想到DP,因为题目里已经说了要按顺序完成这些请求。所以我们可以线性DP,但是这一题的状态不是很好设,因为数据范围有点大,而且我们需要记录三个人的位置信息。但是我们可以发现完成一个请求时三个人中必然有一人在这个请求的位置,所以我们可以根据请求来判断其中一人的位置,这样我们就只需要记录其他两个人了。而复杂度似乎...

weixin_30807677的博客 118

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

CH5102 Mobile Service【线性dp】

5102 Mobile Service0x50「动态规划」例题 描述 一个公司有三个移动服务员,最初分别在位置1,2,3处。如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去。某一时刻只有一个员工能移动,且不允许在同样的位置出现两个员工。从 p 到 q 移动一个员工,需要花费 c(p,q)。这个函数不一定对称,但保证 c(p,p)=0。给出N个请求,请求发生的位...

weixin_30444105的博客 200

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

蓝书(算法竞赛进阶指南)刷题记录——CH5102 Mobile Service(DP)

题目:CH5102. 题目大意:三个人一开始在1,2,31,2,31,2,3的位置,每次给定一个111~lll的坐标(必须按顺序),他们之中必须有一个人走到这个坐标,且他们之中不能有两人站在同一位置,从点xxx走到点yyy的花费为c(x,y)c(x,y)c(x,y),求最小花费. 首先这是一道十分裸的DP,我们可以设状态f[i][x][y][z]f[i][x][y][z]f[i][x][y][z]...

hzk_cpp的博客 428

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

CH5102/SPOJ?? Mobile Service/P4046 [JSOI2010]快递服务[线性dp+卡常]

http://contest-hunter.org:83/contest/0x50%E3%80%8C%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E3%80%8D%E4%BE%8B%E9%A2%98/5102%20Mobile%20Service 终于会做一道了。。 $f[i][j][k]$表示第$i$个命令后一个人在$j$,另一个在$k$,还有一个在...

dianer2977的博客 230

Mobile Service

Mobile ServiceTime Limits: 3000 ms Memory Limits: 65536 KB Description   一个公司有三个移动服务员。如果某个地方有一个请求,某个员工必须赶到那个地方去(那个地方没有其他员工),某一时刻只有一个员工能移动。被请求后,他才能移动,不允许在同样的位置出现两个员工。从p到q移动一个员工,需要花费c(p,q)。这个函数没有必要对称,

white_elephant的博客 1850

CH5102 Mobile Service

CH5102 Mobile Service 描述 一个公司有三个移动服务员,最初分别在位置1,2,3处。如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去。某一时刻只有一个员工能移动,且不允许在同样的位置出现两个员工。从 p 到 q 移动一个员工,需要花费 c(p,q)。这个函数不一定对称,但保证 c(p,p)=0。给出N个请求,请求发生的位置分别为 p_1~...

weixin_33756418的博客 131

CH 5102Mobile Service题解

题目; 用动态规划很容易将完成任务量作为dp的阶段,通过指派服务员,从当前i-1个任务转移到i个任务; 我们可以用一个四维数组f[i][x][y][z]来表示在完成当前任务i时,三个机器人分别在x,y,z的位置;每次由其中一个机器人向目标位置转移;取min值; 但是算法规模一点都不乐观; 我们想到在完成当前任务i时,必定存在一个机器人位于p[i],即目标地;那么我们可以用f[i]...

dengcuan6219的博客 233

#动态规划#SP703 codevs 2182 1383 CH 5102 Mobile Service 移动服务

题目 有三个移动服务员,最初分别在位置1,2,3处。 如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去。某一时刻只有一个员工能移动,且不允许在同样的位置出现两个员工。从ppp到qqq移动一个员工,需要花费c(p,q)c(p,q)c(p,q)。求最小花费。 分析 用动态规划,但是普通的动态规划不仅时间超时,空间也无法满足,所以需要优化,可以发现员工应该...

lemondinosaur的博客 417

移动服务(dp)

移动服务 状态设置:f[i][x][y]表示已经处理完前i个请求,且三个服务员分别在p[i], x, y的所有方案的集合; f[i][x][y]的值是集合中所有方案的花费的最小值; 状态转移: 有两种状态转移方式 一种是一个状态由上一层的三种情况得到,一种是一个状态向下一种状态转移时只有三种情况,显然后者对于此题较为好算,也就是用i计算i+1的值。 因为向下一个状态枚举时,一定有一个状态位于p[i]处,另外两个位于x和y处,就此可以有三种状态向下一个状态枚举,而对于最开始时,也就是p[0]处,状态..

qq_34026804的博客 445

274. 移动服务(线性dp)

分析:L个位置,N个请求,让我们求最小花费 影响花费因素:处理花费的服务员所在的位置 限制条件 过程中不能去其他的位置,只能去发生请求的位置 不允许两个员工在同一个位置 划分依据:由于有3个服务员,对于每个请求来说,有三种情况 服务员1去服务 服务员2去服务 服务员3去服务 本题的数据范围是200,对于难做的问题,可以思考暴力枚举怎么做,然后再对枚举进行优化 枚举: 有N个请求,3种选择,分别枚举,有3^N种方案 动态规划: 有N个请求,每个请求时x,y,z的位置范围为[3,2..

qq12323qweeqwe的博客 555

线性DP-移动服务

移动服务 题解: 我们这道题有4个状态,解决到第几个问题,X,Y,Z分别在x,y,z坐标上对应的一个话费。但是这样的话我们开4维一定会超内存。 那么我们再想一下,题目中说了当一个员工移动的时候另外两个员工是不会移动的。所以我们减少一维。开三维,分别表示三个状态:解决到第i个问题的时候,X,Y或者X,Z或者Y,Z对应位置所话费的价格。 然后我们初始状态就可以表示为f[0][1][2]=0。因为我们l...

行走天涯的豆沙包的博客 285

备战2023蓝桥国赛-移动服务

备战2023蓝桥国赛

qw991的博客 348
上一篇: 二十世纪爱因斯坦逻辑难题 推理过程
下一篇: 【洛谷P1352】没有上司的舞会【树形DP】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值