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 ...
随机推荐
- Android MVP 简析
原地址:https://segmentfault.com/a/1190000003927200 在Android中应用MVP模式的原因与方法的简析,写的简单易懂.
- python 时间和时间戳的转化
时间戳与时间之间的转换,需要一个中间过程,即将先将时间或时间戳先转为时间元组! 1.时间转时间戳: import datetime, time s = datetime.datetime(2016,6 ...
- TCP建立连接和释放连接过程
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议.TCP建立连接需要三次握手,释放连接需要四次握手. 1.TCP整 ...
- Vue 问题记录
Vue 问题记录 汇总日常开发中遇到的关于vue的问题 VeeValidator 语言设置 校验消息默认是英文的,定义中文或其他语言的错误提示消息 import VeeValidate from 'v ...
- 使用Storyboard拖线容易出错的地方
使用Storyboard拖线容易出错的地方: 在Storyboard中,选中某个控件,按住ctrl键进行拖线,建立Outlet和Action后,不能手动再去修改自动生成的代码,然后再次进行连线,这样会 ...
- STM32之定时器输入捕获
1.输入捕获模式可以用来测量脉冲宽度或者测量频率.STM32的定时器,除了TIM6和TIM7,其他定时器都有输入捕获功能.STM32的输入捕获,简单的说就是通过检测TIMx_CHx上的边沿信号,在边沿 ...
- iOS视频倒放
iOS视频倒放 视频的倒放就是视频从后往前播放,这个只适应于视频图像,对声音来说倒放只是噪音,没什么意义,所以倒放的时候声音都是去除的. 倒放实现 一般对H264编码的视频进行解码,都是从头至尾进行的 ...
- 执行SQL查询导致磁盘耗尽故障演示
a fellow in IMG wechat group 2 met an error about running out of disk space when using MySQL ...
- 利用clear清除浮动的一些问题
下面这段代码是用来清除浮动带来的高度塌陷问题 .clearfix:before { content: "."; display: block; height: 0; clear: ...
- JQuery制作网页—— 第六章 jQuery选择器
1.jQuery选择器:jQuery选择器类似于CSS选择器,用来选取网页中的元素. Eg:$("h3").css("background",&qu ...