题目传送门

这是一道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的更多相关文章

  1. 【BZOJ1003】【ZJOI2006】物流运输

    1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2556  Solved: 1008[Submit] ...

  2. BZOJ 1003 物流运输 题解 【SPFA+DP】

    BZOJ 1003 物流运输 题解 Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的 ...

  3. BZOJ1003 物流运输 最短路+DP

    1003: [ZJOI2006]物流运输 Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条 ...

  4. BZOJ-1003 物流运输trans SPFA+DP

    傻逼错误耗我1h,没给全范围坑我1A.... 1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec Memory Limit: 162 MB Submit: 529 ...

  5. [ZJOI2006]物流运输

    1003: [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 5999  Solved: 2473[Submit][Stat ...

  6. bzoj1003 [ZJOI2006]物流运输

    1003: [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 6300  Solved: 2597[Submit][Stat ...

  7. 【BZOJ】【1003】【ZJOI2006】物流运输trans

    最短路/DP 这题数据规模并不大!!这是重点……… 所以直接暴力DP就好了:f[i]表示前 i 天的最小花费,则有$f[i]=min\{f[j]+cost[j+1][i]+k\} (0\leq j \ ...

  8. 【bzoj1003】[ZJOI2006]物流运输

    1003: [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 6331  Solved: 2610[Submit][Stat ...

  9. bzoj1003: [ZJOI2006]物流运输

    dp+最短路.暴力枚举就可以了.O(n3logn).样例中m=n然后测样例过了.然后 54行习惯性的dis[n]然后就WA了!!!. #include<cstdio> #include&l ...

随机推荐

  1. ZT 骆家辉宣布辞职 他给中国带来什么留下什么?

    骆家辉宣布辞职 他给中国带来什么留下什么? 字号|2013年11月20日 15:20    已有1933人阅读    57 导 读 美国驻华大使骆家辉20日上午发表声明,宣布辞职.骆家辉履任期间为中国 ...

  2. Hive入门操作

    Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能.本文描述了HIve的一些基本操作,如有错误之处还请指出. 常用语法 #显示相关信息 sh ...

  3. RequireJS进阶-模块的优化及配置的详解

    概述 关于RequireJS已经有很多文章介绍过了.这个工具可以将你的JavaScript代码轻易的分割成苦干个模块(module)并且保持你的代码模块化与易维护性.这样,你将获得一些具有互相依赖关系 ...

  4. building for production...Killed

    npm run build报错 building for production...Killed 原理 按照他人的说法是,服务器内存不够用了,这样就给他配置一个单独的内存出来就解决了 解决方法 sud ...

  5. 使用IPDB调试Python代码

    (转载自:https://xmfbit.github.io/2017/08/21/debugging-with-ipdb/) IPDB是什么?IPDB(Ipython Debugger),和GDB类似 ...

  6. Git--将本地代码提交到服务器分支上

    直接使用git push origin [branch-name],往往会出错,有可能本地版本比分支的版本更低 这个时候需要先将解决冲突,再将本地代码推送到服务器分支上 1. 在自己分支cs上提交代码 ...

  7. Google Performance工具,你还不会用?Git走起。

    2018俄罗斯世界杯如火如荼的进行中,第一轮各种冷门,让大家的确大跌眼界,尤其是那些买球的同志们,慌得一笔,还敢继续买吗?话说来,看球归看球,学习还是不能落下,我们来学习Chrome Devtool ...

  8. Zookeeper简介和安装(四)

    一.简介: Zookeeper是一个分布式协调服务,提供的服务如下: 命名服务:类似于DNS,但仅对于节点 配置管理:服务配置信息的管理 集群管理:Dubbo使用Zookeeper实现服务治理 分布式 ...

  9. chromium之lazy_instance

    先看看介绍 // The LazyInstance<Type, Traits> class manages a single instance of Type, // which will ...

  10. Linux awk命令用法

    概述 awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理 awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0 ...