BZOJ_1003_[ZJOI2006]物流运输_最短路+dp
BZOJ_1003_[ZJOI2006]物流运输_最短路+dp
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1003
分析:
这种一段一段的显然要用dp求。
f[i]表示到第i天为止的最小花销。转移有f[i]=min{f[j-1]+cost[j][i]*(i-j+1)+k};
其中cost[i][j]表示从i到j天的最短路长度,spfa预处理出来。
代码:
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int head[30],to[1000],nxt[1000],val[1000],cnt;
int n,m,k,t,inb[110][30],f[110],cost[110][110],can[30];
int Q[100],l,r,dis[30],inq[30];
inline void add(int u,int v,int w){
to[++cnt]=v;nxt[cnt]=head[u];head[u]=cnt;val[cnt]=w;
}
int spfa(int be,int en){
for(int i=1;i<=n;i++)can[i]=0;
for(int i=be;i<=en;i++)
for(int j=1;j<=n;j++)if(inb[i][j])
can[j]=1;
l=r=0;
memset(dis,0x3f,sizeof(dis));
dis[1]=0;Q[r++]=1;inq[1]=1;
while(l^r){
int x=Q[l++];if(l==n+10)l=0;inq[x]=0;
for(int i=head[x];i;i=nxt[i]){
if(can[to[i]])continue;
if(dis[to[i]]>dis[x]+val[i]){
dis[to[i]]=dis[x]+val[i];
if(!inq[to[i]]){
inq[to[i]]=1;Q[r++]=to[i];if(r==n+10)r=0;
}
}
}
}
return dis[n]>100000?-1:dis[n];
}
int main(){
scanf("%d%d%d%d",&t,&n,&k,&m);
int x,y,z;
for(int i=1;i<=m;i++){
scanf("%d%d%d",&x,&y,&z);
add(x,y,z);add(y,x,z);
}
int h;
scanf("%d",&h);
for(int i=1;i<=h;i++){
scanf("%d%d%d",&x,&y,&z);
if(y>z)swap(y,z);
for(int j=y;j<=z;j++)inb[j][x]=1;
}
for(int i=1;i<=t;i++){
for(int j=i;j<=t;j++){
cost[i][j]=spfa(i,j);
//printf("%d\n",cost[i][j]);
}
}
f[0]=0;
for(int i=1;i<=t;i++){
f[i]=1<<30;
for(int j=1;j<=i;j++){
if(cost[j][i]==-1)continue;
f[i]=min(f[j-1]+cost[j][i]*(i-j+1)+k,f[i]);
}
//printf("%d\n",f[i]);
}
printf("%d",f[t]-k);
}
BZOJ_1003_[ZJOI2006]物流运输_最短路+dp的更多相关文章
- BZOJ 1003: [ZJOI2006]物流运输trans(最短路+dp)
1A,爽! cost[i][j]表示从第i天到第j天不改路线所需的最小花费,这个可以用最短路预处理出.然后dp(i)=cost[j][i]+dp(j-1)+c. c为该路线的花费. --------- ...
- bzoj 1003 [ZJOI2006]物流运输(最短路+dp)
[ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 8973 Solved: 3839[Submit][Status][Di ...
- [BZOJ1003] [ZJOI2006] 物流运输trans (最短路 & dp)
Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格 ...
- 【BZOJ】1003: [ZJOI2006]物流运输trans(SPFA+DP)
http://www.lydsy.com/JudgeOnline/problem.php?id=1003 这题一开始看是不会的额,,,还是看题解了..一开始我觉得不能用最短路啥的,,看了题解发现这是d ...
- B1003 物流运输(最短路 + dp)
这个dp其实不是那么难,状态其实很好想,但是细节有少许偏差. 当时我并没有想到最短路要在dp之外写,后来看题解之后发现要预处理出来每段时间1~M的最短路,然后直接dp. 题目: Description ...
- 【洛谷 P1772】 [ZJOI2006]物流运输(Spfa,dp)
题目链接 \(g[i][j]\)表示不走在\(i\text{~}j\)时间段中会关闭的港口(哪怕只关\(1\)天)从\(1\)到\(m\)的最短路. \(f[i]\)表示前\(i\)天的最小花费.于是 ...
- 【luogu】P1772物流运输(最短路+DP)
题目链接 对于本题我们设ext[i][j]计算第i个码头在前j天总共有几天不能用(其实就一前缀和),设dis[i][j]是从第i天到第j天不变运输路线的最短路径,设f[i]是前i天运输货物的最小花费. ...
- BZOJ_1003_[ZJOI2006]_物流运输_(动态规划+最短路)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1003 m个码头,从1运货到m,n天每天运,其中有一些码头在特定的天里不能使用.运货的代价:在两 ...
- [luogu] P1772 [ZJOI2006]物流运输(动态规划,最短路)
P1772 [ZJOI2006]物流运输 题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线 ...
随机推荐
- js正则表达式中test,exec,match方法的区别说明
js正则表达式中test,exec,match方法的区别说明 test test 返回 Boolean,查找对应的字符串中是否存在模式.var str = "1a1b1c";var ...
- 如何成为一个优秀的DBA
今天在群上跟技术友们聊天.发现有几个大学生,他们很担心自己找不到工作.我问他们理由,他们说我们没有经验,公司不要怎么办?这些孩子们的担心,让我感觉到奇怪. 如果我是一个公司的老总,我会有这两种考虑:要 ...
- eclipse中tomcat内存溢出设置
Eclipse里启动Tomcat,配置内存大小 2009年12月11日 星期五 10:50 一般安装完eclipse之后,在安装目录下你应该可以看到有一个 eclipse.ini 文件,对了,就是在这 ...
- MySql foreach属性
foreach属性 属性 描述 item 循环体中的具体对象.支持属性的点路径访问,如item.age,item.info.details.具体说明:在list和数组中是其中的对象,在map中是val ...
- 微信小程序中自定义函数的学习使用
新手,最近在给学校搞个党费计算器.需要自己定义函数来实现某个功能. 1.无参函数: 函数都是写在js文件里面的. Page({ data:{ income1:'0', }, cal:function( ...
- require.js配置路径的用法和css的引入
前端开发在近一两年发展的非常快,JavaScript作为主流的开发语言得到了前所未有的热捧.大量的前端框架出现了,这些框架都在尝试着解决一 些前端开发中的共性问题,但是实现又不尽相同.通常一般的前端加 ...
- Flask表单(Flask-WTF)
1.request.from获取POST表单数据 # hello.py #coding:utf-8 from flask import Flask,request,render_template ap ...
- Robot Framework自动化_环境搭建以及第一个用例
Robot Framework自动化_环境搭建以及第一个脚本 培训老师:肖能尤 2016/06/07 课程目的 一.Robot framework 环境搭建以及第一个脚本 课程内容 1 安装前准 ...
- Oracle聚合函数
max(),min(),avg(),sum() 其中 avg(),sum()只能操作数字 , max(),min()能操作数字.日期.字母 等.
- SSM-Spring-02:Spring的DI初步加俩个实例
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- DI:依赖注入 第一个DEMO:域属性注入 java类:(Car类和Stu类,学生有一辆小汽车) packag ...