BZOJ1820:[JSOI2010]Express Service 快递服务(DP)
Description
Input
Output
Sample Input
0 5 0 6
6 0 5 6
1 6 0 6
1 1 1 0
1 1 1 1 4 4 2 2 2 3
Sample Output
6
样例说明:到每个请求收件地点的司机分别为1 1 1 1 3 3 2 2 2 1,因此司机1只需从起使点1移动到地点3,司机2只需停留在地点2,司机3从起始点3移动到地点4。
Solution
sbDP,基本相当于昨晚上nowcoder的弱化版
因为一个地方j和k写反调了半天……GG
考虑裸暴力,f[num][i][j][k]表示当前完成了第num个收件点,三辆车分别在ijk三个位置
很容易发现ijk可以优化掉一维因为一定有一辆车在上一个收件点a[num-1]
再滚动数组优化一下第一维就可以过了,f[0/1][i][j]表示一辆车在i,一辆在j。复杂度m*n^2
Code
#include<iostream>
#include<cstring>
#include<cstdio>
#define N (205)
using namespace std;
int f[][N][N],dis[N][N],a[N*],n,m,x,pre=,now=;
int main()
{
memset(f,0x3f,sizeof(f));
scanf("%d",&n);
for (int i=; i<=n; ++i)
for (int j=; j<=n; ++j)
scanf("%d",&dis[i][j]);
while (scanf("%d",&x)!=EOF) a[++m]=x; f[][][]=f[][][]=dis[][a[]];
f[][][]=f[][][]=dis[][a[]];
f[][][]=f[][][]=dis[][a[]]; for (int i=; i<=m; ++i)
{
memset(f[now],0x3f,sizeof(f[now]));
for (int j=; j<=n; ++j)
for (int k=; k<=n; ++k)
{
f[now][j][k]=f[now][k][j]=min(f[now][j][k], f[pre][j][k]+dis[a[i-]][a[i]]);
f[now][a[i-]][j]=f[now][j][a[i-]]=min(f[now][j][a[i-]], f[pre][j][k]+dis[k][a[i]]);
f[now][a[i-]][k]=f[now][k][a[i-]]=min(f[now][k][a[i-]], f[pre][j][k]+dis[j][a[i]]);
}
pre^=; now^=;
} int ans=0x7fffffff;
for (int i=; i<=n; ++i)
for (int j=; j<=n; ++j)
ans=min(ans,f[pre][i][j]);
printf("%d",ans);
}
BZOJ1820:[JSOI2010]Express Service 快递服务(DP)的更多相关文章
- BZOJ 1820: [JSOI2010]Express Service 快递服务( dp )
dp(i,j,k)表示在处理第i个业务, 另外2个在j,k处. 第一维可以滚动... --------------------------------------------------------- ...
- bzoj千题计划201:bzoj1820: [JSOI2010]Express Service 快递服务
http://www.lydsy.com/JudgeOnline/problem.php?id=1820 很容易想到dp[i][a][b][c] 到第i个收件地点,三个司机分别在a,b,c 收件地点的 ...
- [bzoj1820][JSOI2010][Express Service 快递服务] (动态规划)
Description 「飞奔」快递公司成立之后,已经分别与市内许多中小企业公司签订邮件收送服务契约.由于有些公司是在同一栋大楼内,所以「飞奔」公司收件的地点(收件点)最多只有m点 (1, 2, …, ...
- 【BZOJ1820】[JSOI2010]Express Service 快递服务 暴力DP
[BZOJ1820][JSOI2010]Express Service 快递服务 Description 「飞奔」快递公司成立之后,已经分别与市内许多中小企业公司签订邮件收送服务契约.由于有些公司是在 ...
- 1820: [JSOI2010]Express Service 快递服务
1820: [JSOI2010]Express Service 快递服务 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 847 Solved: 325 ...
- 【BZOJ1820】[JSOI2010]快递服务(动态规划)
[BZOJ1820][JSOI2010]快递服务(动态规划) 题面 BZOJ 洛谷 题解 考虑无脑四维\(dp\).\(f[i][a][b][c]\),表示当前处理到第\(i\)个任务,三辆车的位置分 ...
- Windows Service插件服务开源
WindowsService 插件服务是一个为简化NTService开发和打包程序,提供插件开发的方式进行动态加入或删除业务. 插件式服务程序的由来,在系统维护的过程中,根据企业的要求经常要进行一些周 ...
- WCF Restful Service的服务
构建基于WCF Restful Service的服务 前言 传统的Asmx服务,由于遵循SOAP协议,所以返回内容以xml方式组织.并且客户端需要添加服务端引用才能使用(虽然看到网络上已经提供了这方面 ...
- Docker Kubernetes Service 网络服务代理模式详解
Docker Kubernetes Service 网络服务代理模式详解 Service service是实现kubernetes网络通信的一个服务 主要功能:负载均衡.网络规则分布到具体pod 注 ...
随机推荐
- Linux快捷指令
Linux创建一个快捷指令,直接跳转到某个目录中的某个文件 创建快捷指令命令: $ ln -s 源目录 目标快捷方式 删除快捷指令命令: $ unlink 快捷方式名 eg:比如我想在 /usr 目录 ...
- PIXI AnimatedSprite 及打字爆炸动画(5)
效果 : 消除字母 当前位置出现爆炸效果 这里使用到了AnimatedSprite 动画 Members An AnimatedSprite is a simple way to display a ...
- zabbix 监控ipmi
一,配置ipmi yum -y install OpenIPMI OpenIPMI-devel ipmitool freeipmi 登入IDARAC 在服务端测试是否可以获得数据 ipmitool - ...
- (转)Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步
Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步原文:http://www.summerspacestation.com/linux%E4%B8%8B%E9%80 ...
- BSON入门
1.概念BSON(Binary Serialized Document Format)是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组 ...
- s-2、charles 入门
本文的内容主要包括: Charles 的简介 如何安装 Charles 将 Charles 设置成系统代理 Charles 主界面介绍 过滤网络请求 截取 iPhone 上的网络封包 截取 Https ...
- 【Ubuntu】设置静态ip地址
一.Ubuntu16.04设置静态IP1.获取网卡的名字 ip route show 2.获取网卡的名字 vim /etc/network/interfaces auto ens33 iface ...
- Path类 操作文件类
// Path类 IO命名空间 静态类 不能创建对象类名. string str =@"E:\C#程序设计基础入门教程\(第十一天)\122\22\nee.txt"; ////in ...
- MySQL 查询多张表中相同字段的最大值
MySql : 有N张表,N未知,每张表都有一个字段(id),每张表的字段结构不完全一样,如何查询所有表里面所有id的最大值?如下图所示: 对上面三张表进行操作的话,结果应该为:9 SQL语句: se ...
- Java ConcurrentHashMap初始化
初始化ConcurrentHashMap时可以指定map大小,由于ConcurrentHashMap代码默认大小是2n,这里需要把用户填的大小转换成2n备注:代码基于jdk 1.8.0_91Concu ...