BZOJ1003 物流运输 题解
发现\(n,m\)很小,我们可以先把任意\(2\)天的最短路都给求出来,考虑\(DP\),设\(f[i][j]\)表示\(j+1\)~ \(i\)这几天内走的是最短路线的最优方案,显然最优情况下\(j+1\)~ \(i\)天走的是同一条路。
#include <bits/stdc++.h>
#define int long long
int n,m,k,E,N;
int head[1000000],tot;
int r[111];
int cn[111][111];
int dis[1000000];
int min[111][111];
std::queue<int>q;
struct edge{
int to,nxt,w;
}e[1000000];
void add(int x,int y,int z){
e[++tot]={y,head[x],z};
head[x]=tot;
}
void D(int d1,int d2){
for(int i=1;i<=m;++i)dis[i]=1e14;
dis[1]=0;
q.push(1);
while(!q.empty()){
int x=q.front();
q.pop();
for(int i=head[x],y,f;i;i=e[i].nxt){
y=e[i].to;f=0;
for(int j=d1;j<=d2;++j)f|=cn[y][j];
if(f)continue;
if(dis[y]>dis[x]+e[i].w){
dis[y]=dis[x]+e[i].w;
q.push(y);
}
}
}
min[d1][d2]=dis[m];
}
main(){
scanf("%lld%lld%lld%lld",&n,&m,&k,&E);
for(int i=1,x,y,z;i<=E;++i){
scanf("%lld%lld%lld",&x,&y,&z);
add(x,y,z);
add(y,x,z);
}
scanf("%lld",&N);
for(int i=1,x,y,z;i<=N;++i){
scanf("%lld%lld%lld",&x,&y,&z);
for(int j=y;j<=z;++j)
cn[x][j]=1;
}
for(int i=0;i<=n;++i)
for(int j=i;j<=n;++j)
D(i,j);
r[0]=0LL;
for(int i=1;i<=n;++i)r[i]=1e14;
for(int i=1;i<=n;++i)
for(int j=0;j<i;++j)
r[i]=std::min(r[i],r[j]+k*(j>0)+min[j+1][i]*(i-j));
printf("%lld\n",r[n]);
return 0;
}
BZOJ1003 物流运输 题解的更多相关文章
- bzoj1003物流运输 最短路+DP
bzoj1003物流运输 题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输 ...
- BZOJ 1003 物流运输 题解 【SPFA+DP】
BZOJ 1003 物流运输 题解 Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的 ...
- BZOJ1003 物流运输 最短路+DP
1003: [ZJOI2006]物流运输 Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条 ...
- BZOJ-1003 物流运输trans SPFA+DP
傻逼错误耗我1h,没给全范围坑我1A.... 1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec Memory Limit: 162 MB Submit: 529 ...
- [ZJOI2006]物流运输 题解
[ZJOI2006]物流运输 时间限制: 10 Sec 内存限制: 162 MB 题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个 ...
- bzoj1003 物流运输
Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格 ...
- 洛谷P1772 [ZJOI2006]物流运输 题解
题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪. ...
- bzoj1003物流运输——DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1003 DP好题: 直接找一个时间段的最短路,并用它来预处理出每个时间段的最小花费: f[i] ...
- 【题解】物流运输 [ZJ2006] [P1772] [BZOJ1003]
[题解]物流运输 [ZJ2006] [P1772] [BZOJ1003] 传送门:物流运输 \([ZJ2006]\) \([P1772]\) \([BZOJ1003]\) [题目描述] 给定一个含 \ ...
随机推荐
- 【WPF学习】第六十八章 自定义绘图元素
上一章分析了WPF元素的内部工作元素——允许每个元素插入到WPF布局系统的MeasureOverride()和ArrangeOverride()方法中.本章将进一步深入分析和研究元素如何渲染自身. 大 ...
- Java——Spring超详细总结
Spring概述 一.简化Java开发 Spring为了降低Java开发的复杂性,采用了以下四种策略 基于POJO的轻量级和最小侵入性编程: 通过依赖注入和面向接口实现松耦合: 基于切面和惯例进行声明 ...
- Java——SSM整合所需的Maven配置文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- (三)Redis &分布式锁
1 Redis使用中的常见问题和解决办法 1.1 缓存穿透 定义:缓存系统都是按照key去缓存查询,如果不存在对应的value,就应该去DB查找.一些恶意的请求会故意查询不存在的key,请求量很大,就 ...
- Spring学习笔记(八)Spring Data JPA学习
jpa简单的命名规则如下,这个不多做介绍,放在这里也是给自己以后查找起来方便,这篇文章主要介绍之前一直忽略了的几个点,像@NoRepositoryBean这个注解,以及怎么自定义Repositor ...
- 王颖奇 201771010129《面向对象程序设计(java)》第八周学习总结
实验六 接口的定义与使用 实验时间 2018-10-18 1.实验目的与要求 (1) 掌握接口定义方法: (2) 掌握实现接口类的定义要求: (3) 掌握实现了接口类的使用要求: (4) 掌握程序回调 ...
- 如何将Altera官方提供的CADENCE.OLB应用于altium Designer中
- Atcoder Beginner Contest 167
赛场实况: 训练反思: A题签到不说了,B题第一眼没看清楚数据范围,写了一堆然后仔细一看1e12果断不能暴力..立马换了一个写法,连交2发wa(细节啊细节!!),C题看了半天英语没看懂说了什么,拿翻译 ...
- es7,8 临门一脚。
ES7 1.Array.prototype.includes() includes()作用,是查找一个值在不在数组里,若是存在则返回true,不存在返回false. 1.基本用法: ['a', 'b' ...
- 复变函数-MINDMAPS-continuous updating