tyvj1061移动服务——DP
题目:http://www.joyoi.cn/problem/tyvj-1061
DP记录状态为当前任务时不在此任务位置上的两个人的位置(因为一定有一个人在此任务位置上);
不妨设初始位置p[0]=3,另外两个人在1,2位置上;
每次考虑上一任务的哪个人来到这一任务位置,更新;
开滚动数组以防止爆空间,因此注意每次i++时给f数组赋初值。
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int l,n,c[][],p[],f[][][],ans,INF=;
int main()
{
scanf("%d%d",&l,&n);
for(int i=;i<=l;i++)
for(int j=;j<=l;j++)
scanf("%d",&c[i][j]);
for(int i=;i<=n;i++)
scanf("%d",&p[i]);
memset(f,,sizeof f);
f[][][]=;
p[]=;
for(int i=;i<=n;i++)
{
memset(f[i%],,sizeof f[i%]);//!!!
for(int x=;x<=l;x++)
for(int y=x+;y<=l;y++)
{
if(x==p[i-]||y==p[i-])continue;
if(x!=p[i]&&y!=p[i])
f[i%][x][y]=min(f[i%][x][y],f[(i-)%][x][y]+c[p[i-]][p[i]]);
if(x!=p[i])
{
int a=min(x,p[i-]),b=max(x,p[i-]);
f[i%][a][b]=min(f[i%][a][b],f[(i-)%][x][y]+c[y][p[i]]);
}
if(y!=p[i])
{
int a=min(y,p[i-]),b=max(y,p[i-]);
f[i%][a][b]=min(f[i%][a][b],f[(i-)%][x][y]+c[x][p[i]]);
}
}
}
ans=INF;
for(int x=;x<=l;x++)
for(int y=x+;y<=l;y++)
ans=min(ans,f[n%][x][y]);
printf("%d\n",ans);
return ;
}
tyvj1061移动服务——DP的更多相关文章
- BZOJ 1820: [JSOI2010]Express Service 快递服务( dp )
dp(i,j,k)表示在处理第i个业务, 另外2个在j,k处. 第一维可以滚动... --------------------------------------------------------- ...
- BZOJ1820:[JSOI2010]Express Service 快递服务(DP)
Description 「飞奔」快递公司成立之后,已经分别与市内许多中小企业公司签订邮件收送服务契约.由于有些公司是在同一栋大楼内,所以「飞奔」公司收件的地点(收件点)最多只有m点 (1, 2, …, ...
- Acwing-274-移动服务(DP)
链接: https://www.acwing.com/problem/content/276/ 题意: 一个公司有三个移动服务员,最初分别在位置1,2,3处. 如果某个位置(用一个整数表示)有一个请求 ...
- DP百题练(一)
目录 DP百题练(一) 线性 DP 简述 Arithmetic Progressions [ZJOI2006]物流运输 LG1095 守望者的逃离 LG1103 书本整理 CH5102 移动服务 LG ...
- 【BZOJ1820】[JSOI2010]Express Service 快递服务 暴力DP
[BZOJ1820][JSOI2010]Express Service 快递服务 Description 「飞奔」快递公司成立之后,已经分别与市内许多中小企业公司签订邮件收送服务契约.由于有些公司是在 ...
- 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%B ...
- AEAI DP V3.7.0 发布,开源综合应用开发平台
1 升级说明 AEAI DP 3.7版本是AEAI DP一个里程碑版本,基于JDK1.7开发,在本版本中新增支持Rest服务开发机制(默认支持WebService服务开发机制),且支持WS服务.RS ...
- AEAI DP V3.6.0 升级说明,开源综合应用开发平台
AEAI DP综合应用开发平台是一款扩展开发工具,专门用于开发MIS类的Java Web应用,本次发版的AEAI DP_v3.6.0版本为AEAI DP _v3.5.0版本的升级版本,该产品现已开源并 ...
- 美团大众点评服务框架Pigeon
服务框架Pigeon架构 • Pigeon提供jar包接入 ,线上运行在tomcat里 • Monitor-CAT ,负责调用链路分析.异常监控告警等 • 配置中心-Lion ,负责一些开关配置读取 ...
随机推荐
- 小练习:用socket实现Linux和Windows之间的通信
在日常生活中,绝大部分人使用的机器通常是windows系统,可是对于研发人员,开发.编译等工作往往是建立在linux机器上.其实.在服务器方面,Linux.UNIX和WindowsServer占领了市 ...
- 关于-O0、O1、O2、O3优化
少优化->多优化: O0 -->> O1 -->> O2 -->> O3 -O0表示没有优化,-O1为缺省值,-O3优化级别最高 整理自网络,仅供参考 1.- ...
- 更精炼更专注的RTMPClient客户端EasyRTMPClient,满足直播、转发、分析等各种需求
现状 EasyRTMPClient,熟悉的朋友就会联想到EasyRTSPClient项目(https://github.com/EasyDSS/EasyRTSPClient),EasyRTSPClie ...
- EasyNVR H5无插件摄像机直播解决方案前端解析之:引用videojs无法自动播放
关于videojs自动播放问题 播放流媒体多使用videojs来进行播放,videojs,本身自带自动播放属性: 通过添加autoplay(),来完成视频播放的自动加载: player = video ...
- meaven环境变量配置
首先,先到官网去下载maven.这里是官网的地址:http://maven.apache.org/download.cgi 请选择最新的版本下载,这里咱们下载的是apache-maven-3.1.1 ...
- hibernate_sequence.nextval 序列不存在
1: 使用oracle数据库时,hibernate配置bean文件时,在*.hbm.xml中配置主键生成策略为sequence,却没有指定sequence 2: <param name=&quo ...
- 流畅python学习笔记第十八章:使用asyncio编写服务器
在这一章中,将使用asyncio写一个TCP服务器.这个服务器的作用是通过规范名称查找Unicode字符,来看下代码: import asyncio from charfinder import Un ...
- 提高iOS开发效率的第三方框架等--不断更新中。。。
1. Mantle Mantle 让我们能简化 Cocoa 和 Cocoa Touch 应用的 model 层.简单点说,程序中经常要进行网络请求,请求到得一般是 json 字符串,我们一般会建一个 ...
- 在Linux下创建7种类型的文件
在测试的时候有时会需要每种类型的文件,在系统中进行搜索都会找到,当然最方便的还是手动创建它们进行测试使用. 普通文件: $ touch regular 目录: $ mkdir directory 符号 ...
- Android系统Gps分析(一)【转】
本文转载自:http://blog.csdn.net/xnwyd/article/details/7198728 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 1 G ...