BZOJ1003_物流运输_KEY
这是一道DP+最短路径的好题。
首先预处理每天每个点的最短路径。
用SPFA进行处理。即cost[i][j]为第i天到底j天的1到M点的最小花费。
就可以水水的DP。
设f[i]为第i天的最优方案,f[i]=min(f[i],f[j]+cost[j+1][i]*(i-j)+K);
即从第j天之后开始改变航线。
code:
/**************************************************************
Problem: 1003
User: yekehe
Language: C++
Result: Accepted
Time:32 ms
Memory:1536 kb
****************************************************************/ #include <bits/stdc++.h>
using namespace std;
int N,M,K,e,mp[][],wi[][],tag[];
int cost[][],f[],dist[],l[],h,t,flag[];
int spfa(){
h=t=;
l[++t]=;dist[]=;
while(h<t){
int front=l[++h];flag[front]=;
for(int i=;i<=M;i++){
if(mp[front][i]&&dist[front]+mp[front][i]<dist[i]){
dist[i]=dist[front]+mp[front][i];
if(!flag[i]&&!tag[i])l[++t]=i,flag[i]=;
}
}
}
return dist[M];
}
int main(){
scanf("%d%d%d%d",&N,&M,&K,&e);
for(int i=;i<=e;i++){
int x,y,c;
scanf("%d%d%d",&x,&y,&c);
mp[x][y]=mp[y][x]=c;
}
int R;scanf("%d",&R);
for(int i=;i<=R;i++){
int p,x,y;scanf("%d%d%d",&p,&x,&y);
for(int j=x;j<=y;j++)wi[p][j]=;
}
for(int i=;i<=N;i++){memset(tag,,sizeof(tag));
for(int j=i;j<=N;j++){
for(int k=;k<=M;k++)tag[k]|=wi[k][j];
memset(dist,,sizeof(dist));
cost[i][j]=spfa();
}
}
for(int i=;i<=N;i++){f[i]=1e8;
for(int j=;j<i;j++){
if(cost[j+][i]!=)f[i]=min(f[i],f[j]+cost[j+][i]*(i-j)+K);
}
}
printf("%d",f[N]-K);
}
BZOJ1003_物流运输_KEY的更多相关文章
- 【BZOJ1003】【ZJOI2006】物流运输
1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2556 Solved: 1008[Submit] ...
- 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]物流运输
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 5999 Solved: 2473[Submit][Stat ...
- bzoj1003 [ZJOI2006]物流运输
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 6300 Solved: 2597[Submit][Stat ...
- 【BZOJ】【1003】【ZJOI2006】物流运输trans
最短路/DP 这题数据规模并不大!!这是重点……… 所以直接暴力DP就好了:f[i]表示前 i 天的最小花费,则有$f[i]=min\{f[j]+cost[j+1][i]+k\} (0\leq j \ ...
- 【bzoj1003】[ZJOI2006]物流运输
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 6331 Solved: 2610[Submit][Stat ...
- bzoj1003: [ZJOI2006]物流运输
dp+最短路.暴力枚举就可以了.O(n3logn).样例中m=n然后测样例过了.然后 54行习惯性的dis[n]然后就WA了!!!. #include<cstdio> #include&l ...
随机推荐
- React Router V4.0学习笔记
最近在学习React Router,但是网站的教程多半还是3.X版本之前的,所以我只能在GitHub上找到React Router的官方文档在读.后来总结了一下,包括学习经验以及V3.X与V4.X的差 ...
- Java反编译工具Jad及插件JadClipse配置教程
Jad是一个Java的一个反编译工具,和eclipse的插件JadClipse,二者结合可以方便的在eclipse中查看class文件的源代码. 下面介绍一下配置: 下载JadClipse,http: ...
- MySQL语法一:数据定义语句
MySQL语句语法主要分为以下三大类: 一.数据定义语句DDL(CREATE,ALTER,DROP,DECLARE) 数据定义语句是用于修改表结构的. 一).语法提炼: 二).由上图可知,数据定义语句 ...
- @autoclosure-可以让表达式自动封装成一个闭包:输入的是一个表达式
@autoclosure 在闭包前面加上@autoclosure func or(first:Bool,@autoclosure second:()->Bool) -> Bool { if ...
- swift菜鸟入门视频教程-02-基本运算符
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/mengxiangyue/article/details/32435435 本人自己录制的swift菜 ...
- 【2^k进制数】
发现自己推得组合数好像不太一样 先把这个复杂的柿子写一遍 \[\sum_{i=2}^{\left \lfloor\frac{n}{k}\right \rfloor}C_{2^k-1}^{i}+\sum ...
- 网易mumu模拟器配置文件和修改adb port位置
网易mumu模拟器配置文件在安装目录下 emulator\nemu\vms\myandrovm_vbox86下的myandrovm_vbox86.nemu文件中 修改port位置
- 4springboot:日志(上)
1.主流的日志框架 2.SLF4J使用 如何在系统中使用SLF4j https://www.slf4j.org 以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面 ...
- Linux网络配置&进程管理
原理图 查看ip和网关
- VBS小脚本_ 玩坏键盘的指示灯
代码简单,功能好玩,富有趣味 set ws=wscript.createobject("wscript.shell") do wscript.sleep ws.sendkeys&q ...