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. WebView简单用法

    1.空布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:andr ...

  2. 基于XMPP利用openfire简单的即时通讯

    功能的实现结果:能够使自己编写客户端与spark客户端信息通讯,将接受到的信息更新到textview上. 1.下载openfire并安装.设置域名,添加用户 2.下载安装spark客户端 3.jar包 ...

  3. 打包phar文件过大的问题。

    根据一个开源工具得到的灵感,使用流打包,并使用token_get_all移除了所用PHP文件的空白.现在打包出来只有93k了.谢谢关注. 我一个简单的文件,加上一个symfony的process包,打 ...

  4. 安装Oracle 12c及解决遇到的问题

    一.[INS-30131]执行安装程序验证所需的初始设置失败(原因:无法访问临时位置) 原文链接:https://blog.csdn.net/u013388049/article/details/85 ...

  5. 小学生都能学会的python(函数)

    小学生都能学会的python(函数) 神马是函数 函数: 对功能或者动作的封装 函数的定义 def 函数名(形参列表): 函数体(return) ret = 函数名(实参列表) 函数的返回值 retu ...

  6. 洛谷 1063 dp 区间dp

    洛谷 1063 dp 区间dp 感觉做完这道提高组T1的题之后,受到了深深的碾压,,最近各种不在状态.. 初看这道题,不难发现它具有区间可并性,即(i, j)的最大值可以由(i, k) 与 (k+1, ...

  7. WinServer-IIS-身份验证\SSL设置

    匿名身份验证:不需任何加密,用的最广泛 基本身份验证:需用户名和密码,采用BASE-64加密,结合SSL证书才比较安全,加密方式很弱 windows身份验证:内网用,结合域控使用 摘要式身份验证:结合 ...

  8. Objective-C基础笔记(3)OC的内存管理

    Objective-C的内存基本管理 在OC中每一个变量都保存着引用计数器,当这个对象的引用计数器为0的时候该对象会被回收.当使用alloc.new或者copy创建一个对象的时候,对象的引用计数器被置 ...

  9. uva725_一道水题(优化到了29ms)

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  10. 【BZOJ3270】博物馆 概率DP 高斯消元

    链接: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...