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的话,先枚举长度,枚举开始位置,然后枚举 ...
随机推荐
- springmvc基础篇—修改默认的配置文件名称及位置
springmvc的默认配置文件是放在WEB-INF下的,叫action-servlet.xml.根据咱们编程的习惯,一般都将配置文件放到src的根目录下,那么如何将这个文件迁移过来呢?其实很简单,请 ...
- ES6 export,import报错
问题描述: 现有两个文件: profile.js const firstName = 'Michael'; const lastName = 'Jackson'; const year = 2018; ...
- jmeter如何连接数据库
大家都知道jmeter是java编写的,java/jmeter如果想连接数据库就要通过java database connector(JDBC)去连接,首先需先下载一个驱动 (mysql-connec ...
- nginx启动和配置
1.命令行参数 -c </path/to/config> 为 Nginx 指定一个配置文件,来代替缺省的.路径应为绝对路径 -t 不运行,而仅仅测试配置文件.nginx 将检查配置文件的语 ...
- redis字符串基本操作
redis之字符串类型: 字符串类型是redis中最基本的数据类型,同时它也是memcached中仅有的数据类型.redis字符串类型的键能存储任何形式的字符串,包括二进制数据,例如,存储json化的 ...
- Windows下LATEX排版论文攻略—CTeX、JabRef使用心得
笔者刚刚接触到TEX排版,相关知识完全空白,用了两天时间学习并完成了一篇论文的完整排版. 期间遇到不少小问题,着实辛苦,分享至上,现将其解决办法总结归纳,共同学习. 一.工具介绍 TeX是一个很好排版 ...
- ui-grid表格怎么实现内容居中
这次是思想落后了,只关注怎么使用原生的ui-grid样式来实现这一需求,后来发现可以通过此列的cellTemplate来为列指定内容,从而可以使用css调整样式. ps:其实有时候换种思路,豁然开朗. ...
- 静态化技术Freemarker
什么是Freemarker FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP ...
- spring笔记(一)
1. 回顾 Struts与Hibernate可以做什么事? Struts, Mvc中控制层解决方案 可以进行请求数据自动封装.类型转换.文件上传.效验… Hibernate, 持久层的解决方案: 可以 ...
- Java学习全攻略-->阅读官方文档
一直感觉Java的官方文档有些杂乱,最近特意整理了一下,仅供参考. 入口 Oracle官方文档入口:http://docs.oracle.com/.下级页面这边只整理了JavaEE跟JavaSE的文档 ...