BZoj 1003 物流运输 DP+最短路
2013-09-11 09:56
W[I]代表前I天能取得的最小花费,假设在第J天更改一次路线,那么如果有
W[I]>W[J]+第j+1到第I天的最小花费+更改路线的花费(K) 那么更新W[I];
用最短路求第J+1到I的最短路*(I-J),边界则是W[1]=0;
因为最开始的路线不用更改(就是最初的路线不算在更改的费用中),这个
方程默认第一次的路线就是更改后的,多加了一次K,所以最后输出W[I]-K;
//By BLADEVIL
var
connect :array[..,..] of longint;
n, m, k, e, ch :longint;
c :array[..,..] of longint;
w :array[..] of longint;
d :array[..] of longint;
vis :array[..] of boolean; procedure init;
var
i, j :longint;
x, y, z :longint;
begin
assign(input,'santajs.in'); reset(input);
assign(output,'santajs.out'); rewrite(output);
read(n,m,k,e);
fillchar(connect,sizeof(connect),);
for i:= to e do
begin
read(x,y,z);
if z<connect[x,y] then
begin
connect[x,y]:=z;
connect[y,x]:=z;
end;
end;
read(ch);
for i:= to ch do
begin
read(x,y,z);
for j:=y to z do
begin
inc(c[j,]);
c[j,c[j,]]:=x;
end;
end;
end; function dijkstra(s,t:longint):longint;
var
i, j, max, k :longint;
begin
fillchar(vis,sizeof(vis),false);
for i:= to m do d[i]:=maxlongint;
d[]:=;
for i:=s to t do
for j:= to c[i,] do
vis[c[i,j]]:=true; for i:= to m- do
begin
max:=maxlongint;
for j:= to m do
if (not vis[j]) and (d[j]<max) then
begin
k:=j;
max:=d[j];
end;
vis[k]:=true;
for j:= to m do if d[j]>d[k]+connect[k,j] then d[j]:=d[k]+connect[k,j];
end;
exit(d[m]);
end; procedure dp;
var
i, j, x :longint;
begin
for i:= to n do
begin
w[i]:=maxlongint div ;
for j:= to i- do
begin
x:=dijkstra(j+,i);
if x> then continue;
if w[i]>w[j]+k+(i-j)*x then w[i]:=w[j]+k+(i-j)*x;
end;
end;
writeln(w[n]-k);
close(input); close(output);
end; begin
init;
dp;
end.
BZoj 1003 物流运输 DP+最短路的更多相关文章
- BZOJ 1003 物流运输 (dp + dijkstra)
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 8672 Solved: 3678[Submit][Stat ...
- BZOJ 1003 物流运输【最短路】【动态规划】
这道题数据太小啦!先枚举i,j表示从第i天到第j天不更改航线的费用. 然后直接跑最短路算法(我用的是Q版男朋友算法) 动归方程显然是f[i] = min(f[i], f[j] + cost[j+1][ ...
- BZOJ 1003 物流运输 题解 【SPFA+DP】
BZOJ 1003 物流运输 题解 Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的 ...
- BZOJ 1003 物流运输 (动态规划 SPFA 最短路)
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 5590 Solved: 2293 [Submit][Stat ...
- BZOJ 1003 物流运输trans dijstra+dp
1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3896 Solved: 1608[Submit] ...
- BZOJ 1003--[ZJOI2006]物流运输(最短路)
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 10034 Solved: 4403 Description ...
- BZOJ 1003 - 物流运输 - [最短路+dp]
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1003 Time Limit: 10 Sec Memory Limit: 162 MB D ...
- BZOJ.1003.[ZJOI2006]物流运输(DP 最短路Dijkstra)
题目链接 容易看出是个最短路+DP.既然答案和天数有关,那么就令\(f[i]\)表示前\(i\)天最小成本. 这个转移很好想: \(f[i]=\min(f[i],\ f[j]+cost(j+1,i)+ ...
- bzoj 1003物流运输 区间dp+spfa
基本思路: 一开始确实没什么思路,因为觉得怎么着都会超时,然后看一下数据范围,呵,怎么都不会超时. 思路: 1.看到能改变线路,想到可以用以下区间dp,区间dp的话,先枚举长度,枚举开始位置,然后枚举 ...
随机推荐
- iOS URL加解密
URL加解密 背景介绍 iOS 下URL加解密,项目使用AFNetworking 虽然是使用HTTPS,但是从安全方面考虑,在很多情况下还是需要对url的参数进行加密的. 接口如 https://19 ...
- Kotlin的属性委托:无上下文情况下Android的赋值(KAD 15)
作者:Antonio Leiva 时间:Mar 9, 2017 原文链接:https://antonioleiva.com/property-delegation-kotlin/ 如我们在前面文章中读 ...
- virtualBox 安装 CentOs 6.8 以及网络配置
安装 virtual box 基本设置: 1.创建虚拟电脑 类型:Linux 版本:Red Hat(64-bit) 这个64/32 和电脑具体配置关系. 然后就是路next or 设置常规的东西. 2 ...
- mysql语法总结
增: 删: 改: 查: 索引: 建: alter table: sql一些常用的经典语句,最后是select as的用法
- Java 实现一个带提醒的定时器
定时闹钟预览版EXE下载链接:https://files.cnblogs.com/files/rekent/ReadytoRelax_jar.zip 功能说明: 实现了一个休息提醒器,用户首先设定一个 ...
- identity方式
identity方式 <generator class="identity"/>identity方式表示数据库的主键生成方式为采用数据库的主键生成机制,例如S ...
- Mininet简单性能测试
建一个简单的模型,使用一个单交换机,然后链接n个主机形成拓扑,然后对每个链路设置带宽,延迟时间,和丢包率. 这里就选择建一个单交换机和六个主机的作为例子. 创建py脚本生成拓扑:写一个类生成一个单交换 ...
- Nova Cell
Nova Cell V2 详解 现在 ,OpenStack 在控制平面上的性能瓶颈主要在 Message Queue 和 Database . 尤其是 Message Queue , 随着计算节点的增 ...
- IDEA里面添加lombok插件,编写简略风格Java代码
在 java平台上,lombok 提供了简单的注解的形式来帮助我们消除一些必须有但看起来很臃肿的代码, 比如属性的get/set,及对象的toString等方法,特别是相对于 POJO; 关于lomb ...
- Java IO 之 FileFilter与FilenameFilter
FileFilter与FilenameFilter可以实现对文件的过滤,他们都是接口,具体的过滤规则需要我们自己编写 1.FileFilter package org.zln.io.file; imp ...