【BZOJ1820】[JSOI2010]Express Service 快递服务 暴力DP
【BZOJ1820】[JSOI2010]Express Service 快递服务
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
样例说明:到每个请求收件地点的司机分别为1 1 1 1 3 3 2 2 2 1,因此司机1只需从起使点1移动到地点3,司机2只需停留在地点2,司机3从起始点3移动到地点4。
题解:一开始以为是个费用流,建图都差不多了(可以从有上下界的费用流考虑,建出来的图长得跟餐巾计划差不多),发现边数有点爆炸。。。
看题解,nm是个暴力!用f[i][a][b][c]表示收完第i个件,1号司机在地点a,2号在b,3号在c的最小总耗油量。显然a,b,c中一定有一个是i件的所在位置,所以可以缩掉一维。并且发现可以用滚动数组,所以又缩掉一维。空间复杂度O(n^2),时间复杂度O(n^2*m),然后就卡过了。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
using namespace std;
typedef long long ll;
int n,m;
int map[210][210],p[1010];
ll f[2][210][210];
ll ans;
int main()
{
scanf("%d",&n);
int i,j,k,d,a,b;
for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%d",&map[i][j]);
memset(f[0],0x3f,sizeof(f[0]));
p[0]=1,f[0][2][3]=0;
while(scanf("%d",&p[m+1])!=EOF) m++;
for(i=1;i<=m;i++)
{
d=i&1;
memset(f[d],0x3f,sizeof(f[d]));
for(j=1;j<=n;j++) for(k=j;k<=n;k++)
{
a=min(p[i-1],j),b=max(p[i-1],j),f[d][a][b]=min(f[d][a][b],f[d^1][j][k]+map[k][p[i]]);
a=min(p[i-1],k),b=max(p[i-1],k),f[d][a][b]=min(f[d][a][b],f[d^1][j][k]+map[j][p[i]]);
a=min(j,k),b=max(j,k),f[d][a][b]=min(f[d][a][b],f[d^1][j][k]+map[p[i-1]][p[i]]);
}
}
ans=1ll<<60;
for(i=1;i<=n;i++) for(j=i;j<=n;j++) ans=min(ans,f[n&1][i][j]);
printf("%lld",ans);
return 0;
}
【BZOJ1820】[JSOI2010]Express Service 快递服务 暴力DP的更多相关文章
- 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 快递服务(DP)
Description 「飞奔」快递公司成立之后,已经分别与市内许多中小企业公司签订邮件收送服务契约.由于有些公司是在同一栋大楼内,所以「飞奔」公司收件的地点(收件点)最多只有m点 (1, 2, …, ...
- [bzoj1820][JSOI2010][Express Service 快递服务] (动态规划)
Description 「飞奔」快递公司成立之后,已经分别与市内许多中小企业公司签订邮件收送服务契约.由于有些公司是在同一栋大楼内,所以「飞奔」公司收件的地点(收件点)最多只有m点 (1, 2, …, ...
- BZOJ 1820: [JSOI2010]Express Service 快递服务( dp )
dp(i,j,k)表示在处理第i个业务, 另外2个在j,k处. 第一维可以滚动... --------------------------------------------------------- ...
- 1820: [JSOI2010]Express Service 快递服务
1820: [JSOI2010]Express Service 快递服务 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 847 Solved: 325 ...
- 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 ...
- 【BZOJ1820】[JSOI2010]快递服务(动态规划)
[BZOJ1820][JSOI2010]快递服务(动态规划) 题面 BZOJ 洛谷 题解 考虑无脑四维\(dp\).\(f[i][a][b][c]\),表示当前处理到第\(i\)个任务,三辆车的位置分 ...
- [JSOI2010]快递服务
Description Luogu4046 BZOJ1820 Solution 暴力DP很好想,\(f[i][j][k][l]\)表示处理到第\(i\)个任务,三个人在\(i,j,k\)的方案数.显然 ...
- sshd服务---暴力破解应对策略
sshd服务暴力破解步骤 sshd暴力破解方法 防止暴力破解调优 1. 变更默认端口 2. 变更root用户 3. 日志监控-->防止暴力破解(fail2ban应用) fail2ban详解 在初 ...
随机推荐
- EffectManager
using UnityEngine; using System.Collections; public class EffectManager : MonoBehaviour { public Ani ...
- iovec结构体定义及使用 (转)
I/O向量(struct iovec) readv(2)与writev(2)函数都使用一个I/O向量的概念.这是由所包含的文件定义的: #include <sys/uio.h> 头文件定义 ...
- Android五大布局标签和属性总结
1.LinearLayout orention 水平和垂直 weight 切割闲置空间 水平布局 切割宽度 垂直布局 切割的高度 切割的时候 指定的高度或者宽度不能用fill_parent/ ...
- 设置U盘启动
利用快捷键来设置U盘启动,利用快捷键启动相对来说比较简单快捷,推荐大家使用(重要提醒:选择热键前,请先插入U盘) 组装机主板 品牌笔记本 品牌台式机 主板品牌 启动按键 笔记本品牌 启动按键 台式机品 ...
- 转:EMQTT测试--安装与测试 (windows)
官网 我下载的是windows版 安装 参考 http://emqtt.com/docs/install.html 将下载的压缩包解压,我解压到了D盘 命令行窗口,cd到程序目录 控制台模式启动: . ...
- ViewStub 的使用
一.内容概述 举例说明ViewStub标签的使用 二.ViewStub类的文档说明及应用场举例 文档描述: A ViewStub is an invisible, zero-sized View th ...
- Android内存优化大全(中)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...
- typeof 和 Object.prototype.toString.call 数据类型判断的区别
使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种. 但 Object.prototype ...
- 【收藏】15个常用的javaScript正则表达式(转)
0 前言 收集整理了15个常用的javaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份证号.URL地址. IPv4地址. 十六进制颜色. 日期 ...
- centos下nginx启动脚本和chkconfig管理
在安装完nginx后,重新启动需要“kill -HUP nginx进程编号”来进行重新加载,显然十分不方便.如果能像apache一样,直接通过脚本进行管理就方便多了. nginx官方早就想好了,也提供 ...