Code:

定义状态 $dp[i]$ 为前 $i$ 天的最小代价。

状态转移为:$dp[i]=min(dp[i],dp[j]+spfa(j+1,i)$ 这里 $spfa(i,j)$ 是指 $(i,j)$ 天中用一种最短路方案的最短路(最小花费)

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<deque>
using namespace std;
void setIO(string a){
freopen((a+".in").c_str(),"r",stdin);
}
const int maxn=30;
const int inf=10000000;
int n,m;
int tag[maxn],head[maxn], to[1000000], nex[1000000],val[1000000],edges;
int a[maxn][200];
long long dp[200];
void add_edge(int u,int v,int c){
nex[++edges]=head[u], head[u]=edges, to[edges]=v, val[edges]=c;
}
deque<int>Q;
bool inq[100000];
int d[maxn];
int spfa(int l,int r){
Q.clear();
for(int i=0;i<maxn;++i) d[i]=inf;
memset(tag,0,sizeof(tag));
memset(inq,false,sizeof(inq));
for(int i=1;i<=m;++i)
for(int j=l;j<=r;++j)
if(a[i][j]) tag[i]=1;
Q.push_back(1);
d[1]=0,inq[1]=true; while(!Q.empty()){
int u=Q.front();
Q.pop_front();
inq[u]=false;
for(int v=head[u];v;v=nex[v]){
if(tag[to[v]]) continue;
if(d[u]+val[v] < d[to[v]]){
d[to[v]]=d[u]+val[v];
if(!inq[to[v]]){
if(Q.empty()||d[to[v]]<=d[Q.front()]) Q.push_front(to[v]);
else Q.push_back(to[v]);
inq[to[v]]=true;
}
}
}
}
return d[m];
}
void update(long long &a,long long b){
if(b<a)a=b;
}
int main(){
//setIO("input");
int k,e;
scanf("%d%d%d%d",&n,&m,&k,&e);
for(int i=1;i<=e;++i){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
add_edge(a,b,c);
add_edge(b,a,c);
} int cnt;
scanf("%d",&cnt);//
for(int i=1;i<=cnt;++i){
int p,l,r;
scanf("%d%d%d",&p,&l,&r);
for(int j=l;j<=r;++j) a[p][j]=1;
}
for(int i=1;i<=n;++i)
{
dp[i]=spfa(1,i)*i;
for(int j=1;j<i;++j)
update(dp[i],dp[j]+(long long)spfa(j+1,i)*(i-j)+k);
}
printf("%lld\n",dp[n]);
return 0;
}

  

[ZJOI2006]物流运输 最短路 动态规划的更多相关文章

  1. [bzoj1003][ZJOI2006][物流运输] (最短路+dp)

    Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格 ...

  2. [luogu1772 ZJOI2006] 物流运输 (最短路 线性dp)

    题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪. ...

  3. 1003: [ZJOI2006]物流运输 最短路+dp

    https://www.lydsy.com/JudgeOnline/problem.php?id=1003 数据范围很小,怎么瞎搞都行,n方dp,然后跑出最短路暴力转移,需要注意的是不能使用的可能有多 ...

  4. P1772 [ZJOI2006]物流运输 最短路+DP

    思路:最短路+DP 提交:1次 题解: $f[i]$表示到第$i$天的最小代价,我们可以预先处理出$i,j$两天之间(包括$i,j$)都可通行的最短路的代价记做$s[i][j]$,然后有$f[i]=m ...

  5. [luogu] P1772 [ZJOI2006]物流运输(动态规划,最短路)

    P1772 [ZJOI2006]物流运输 题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线 ...

  6. [ZJOI2006]物流运输(动态规划,最短路)

    [ZJOI2006]物流运输 题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个 ...

  7. BZOJ 1003: [ZJOI2006]物流运输trans(最短路+dp)

    1A,爽! cost[i][j]表示从第i天到第j天不改路线所需的最小花费,这个可以用最短路预处理出.然后dp(i)=cost[j][i]+dp(j-1)+c. c为该路线的花费. --------- ...

  8. BZOJ_1003_[ZJOI2006]物流运输_最短路+dp

    BZOJ_1003_[ZJOI2006]物流运输_最短路+dp 题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1003 分析: 这种一段一段的显 ...

  9. bzoj 1003 [ZJOI2006]物流运输(最短路+dp)

    [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 8973  Solved: 3839[Submit][Status][Di ...

随机推荐

  1. Android设计模式——工厂方法模式

    1.定义:工厂方法模式就是定义一个用于创建对象的接口,让子类决定实例化哪个类. 2.看代码: 产品抽象类 public abstract class Product { /** * 产品类抽象方法 * ...

  2. 请问具体到PHP的代码层面,改善高并发的措施有哪些

    1.今天被问一个问题:请问具体到PHP的代码层面,改善高并发的措施有哪些? 面对高并发问题我首先想到的是集群.缓存(apt.redis.mem.内存...),但具体到PHP代码层面除了想到队列.减少网 ...

  3. LeetCode(94)Binary Tree Inorder Traversal

    题目如下: Python代码: def inorderTraversal(self, root): res = [] self.helper(root, res) return res def hel ...

  4. Facebook再次爆出安全漏洞,9000万用户受影响

    今年上半年开始,美国社交媒体Facebook因数据泄露事件和涉嫌操纵选举等问题频繁接受听证会拷问,然而事情却远没有结束.今年9月Facebook再次爆出安全漏洞,导致9000万用户可能受到影响. 根据 ...

  5. oracle11.2静默安装

    操作系统及Oracle版本 Linux版本:rhel-server-5.8-x86_64-dvd Oracle版本:Oracle Database 11g Release 2 (11.2.0.4.0) ...

  6. AJAX 创建对象 请求 响应 readyState

    AJAX 创建对象 请求 响应 readyState AjAX = Asynchronous JavaScript and XML (异步的JavaScrip和 XML). 不是新的编程语言, 而是一 ...

  7. css预编译器——Less的使用

      方法一:仅介绍在客户端环境下使用的方法 1 新建test.less并引入.less该文件(和css一样在head处引入),注意rel="stylesheet/less": &l ...

  8. b.WHERE使用中多行子查询(适用于in,any,all条件)

    b.多行子查询(适用于in,any,all条件)   //查询与SCOTT和MARTIN在同一个部门的同事的编号和名称   select empno,ename   from emp   where ...

  9. UNIX基础【UNIX入门经典】

    最早在学校很流行.学生毕业以后就会为公司购买操作系统.导致UNIX流行 UNIX内核: Shell:sh csh ksh 其他组件:

  10. Android性能优化之ListView缓存机制

    要想优化ListView首先要了解它的工作原理,列表的显示须要三个元素:ListView.Adapter.显示的数据. 这里的Adapter就是用到了适配器模式,无论传入的是什么View在ListVi ...