很早就写过这个题目,那时候看题解写的,说白了就是抄的程序……

这几天又拿出来看,突然发现并没有想的那么难,大神勿喷……

用f[i,j,k]表示在第i个时刻的要求中,第一个人在j位置,第二个人在k位置时的最小花费,因为第三个人一定是在上一个时刻要求的位置,所以可以去掉表示第三个人位置的那一维,用req[i]表示第i时刻要求的位置,则在第i时刻,第三个人是在req[i-1]位置上,初始化需要注意。另外,要用滚动数组,否则会MLE

关于初始化:

f[1,1,2]=c[3,req[1]]

f[1,1,3]=c[2,req[1]]

f[1,2,3]=c[1,req[1]]  //c[i,j]为i移动到j的花费

其他的赋为max

仔细看看上面的初始化,其实就可以推导出状态转移方程

f[i,x1,x2]=min{f[i,x1,x2],f[i-1,x1,x2]+c[req[i-1],req[i]]}

f[i,x1,req[i-1]]=min{f[i,x1,req[i-1]],f[i-1,x1,x2]+c[x2,p[i]]}

f[i,x2,req[i-1]]=min{f[i,x2,req[i-1]],f[i-1,x1,x2]+c[x1,p[i]]}

[pascal 代码]

VARp:array[1..1000]of longint;f:array[0..1,1..200,1..200]of longint;c:array[1..200,1..200]of longint;n,m,i,j,mins:longint;
Procedure init;vari,j:longint;beginreadln(n,m);for i:=1 to n dobeginfor j:=1 to n do read(c[i,j]);readln;end;for i:=1 to m do read(p[i]);readln;fillchar(f,sizeof(f),$3f);f[1,1,2]:=c[3,p[1]];f[1,1,3]:=c[2,p[1]];f[1,2,3]:=c[1,p[1]];end;
Function min(x,y:longint):longint;beginif x<y then exit(x) else exit(y);end;
Procedure dps;varx1,x2,i:longint;beginfor i:=2 to m dobeginfor x1:=1 to n dofor x2:=1 to n dobeginf[i mod 2,x2,p[i-1]]:=min(f[i mod 2,x2,p[i-1]],f[(i-1)mod 2,x1,x2]+c[x1,p[i]]);f[i mod 2,x1,p[i-1]]:=min(f[i mod 2,x1,p[i-1]],f[(i-1)mod 2,x1,x2]+c[x2,p[i]]);f[i mod 2,x1,x2]:=min(f[i mod 2,x1,x2],f[(i-1)mod 2,x1,x2]+c[p[i-1],p[i]]);end;fillchar(f[(i+1)mod 2],sizeof(f[(i+1)mod 2]),$3f);end;end;
Begininit;dps;mins:=maxlongint;for i:=1 to n dofor j:=1 to n dobeginif f[m mod 2,i,j]<mins then mins:=f[m mod 2,i,j];if f[m mod 2,i,p[m]]<mins then mins:=f[m mod 2,i,p[m]];if f[m mod 2,p[m],i]<mins then mins:=f[m mod 2,p[m],i];end;writeln(mins);
End.

转载于:https://www.cnblogs.com/FreeDestiny/archive/2011/10/25/2223306.html

TYVJ P1061 [Mobile Service]相关推荐

  1. CH 5102 Mobile Service(线性DP)

    CH 5102 Mobile Service \(solution:\) 这道题很容易想到DP,因为题目里已经说了要按顺序完成这些请求.所以我们可以线性DP,但是这一题的状态不是很好设,因为数据范围有 ...

  2. 使用SAP云平台Mobile Service开发移动应用

    这是Jerry 2020年的第33篇文章,也是汪子熙公众号总共第216篇原创文章. Jerry之前的文章 SAP移动应用解决方案之一:HTML5应用 + Cordova = 平台相关的混合应用,曾经介 ...

  3. 【DP】Mobile Service(jzoj 1327)

    Mobile Service jzoj 1327 题目大意 某公司有三个员工,现在有n个时刻,某一时刻要一个员工到一个位置(别的员工不能动),代价为ci,jc_{i,j}ci,j​,一个位置一个时刻最 ...

  4. GMS(Google Mobile Service)

    Android CTS官方网站:https://source.android.com/compatibility/cts/index.html GMS全称为Google Mobile Service, ...

  5. SAP Cloud Platform mobile service的使用过程

  6. SP703 SERVICE - Mobile Service[DP]

    题意翻译 Description 一个公司有三个移动服务员.如果某个地方有一个请求,某个员工必须赶到那个地方去(那个地方没有其他员工),某一时刻只有一个员工能移动.只有被请求后,他才能移动,不允许在同 ...

  7. Windows Azure Mobile Services增加了对 Android的支持并扩展其适用范围至东亚地区

    我们的Mobile Services使开发人员很容易地开发丰富多彩的移动应用程序.使用Mobile Services ,开发人员不仅能够连接其应用程序到 Windows Azure 上易扩展又安全的后 ...

  8. SAP ITS mobile 简介

    一.  ITSmobile简介 ITSmobile( Internet Transaction Server for Mobile)是新一代实现移动设备(如RF)应用的SAP技术,基于广泛应用Dynp ...

  9. 用 VC++ 2008 编写 Windows Service(系统服务)

    用 VC++ 2008 编写 Windows Service(系统服务) 2008-03-30 08:08 现在许多 Windows Service 应用都可以用 c# 很好的完成,不过毕竟是托管代码 ...

最新文章

  1. worktools-源码下拉问题
  2. 【JSOI2007】动态最值 Splay
  3. SharePoint Framework 构建你的第一个web部件(三)
  4. IOS开发UI篇—导航控制器属性和基本使用
  5. 【转】ArcGIS Server安装
  6. err_cleartext_not_permitted
  7. input输入框历史记录清除
  8. 螺旋英雄谭怎么在电脑上玩 螺旋英雄谭安卓模拟器教程
  9. Hexo NexT主题中添加百度分享功能
  10. MSP430 BOR电路的作用
  11. raid服务器怎么装win7系统安装,安装win7系统时怎么加载SATARAID驱动
  12. php访问微信云数据库,第三方服务器php获取微信小程序云开发access_token和云数据库...
  13. 谷粉搜搜 九尾搜索 推荐
  14. 英文版SecureCRT显示乱码解决
  15. vue在创建项目时不小心选上代码校验选项(linter/ESlint)后,如何关掉?
  16. Linux--入门必学指令【详细拓展】
  17. Play framework session和flash有效范围
  18. quicklz php,使用quicklz缩小程序体积
  19. c语言设置字体时调用对话框,三、Windows通用对话框—改变字体
  20. 练习-Java继承和多态之接口(19)

热门文章

  1. mtk处理器和骁龙对比_3500元以内手机的绝杀?首款MTK 天玑1000处理器手机IQOO Z发布...
  2. 《SysML精粹》学习记录--第十章
  3. 融会贯通,从oracle...,融会贯通Oracle数据库的25条基本知识:
  4. c语言大地坐标系和空间直角坐标系的转换,空间直角坐标系与大地坐标系转换程序.doc...
  5. 【AiLearning】test3:搭建Deep Netural Network
  6. web前端要学哪些东西?主要做什么
  7. java30秒规则_每30秒运行一次cron
  8. 网站内容快速填充的技巧和方法
  9. pcb布局设计_PCB设计布局的重要提示
  10. 猿创征文 | Git的良心教程