题目链接:

http://www.lydsy.com/JudgeOnline/problem.php?id=1003

题意:

题解:

首先我们必须机智的知道f[i]=min(f[i],f[j]+cost(j+1,i)+k)这个dp方程
cost(i,j)表示从第i天到第j天的最小花费
dijstra跑一发

代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 #define MS(a) memset(a,0,sizeof(a))
 5 #define MP make_pair
 6 #define PB push_back
 7 const int INF = 9999999;
 8 const ll INFLL = 0x3f3f3f3f3f3f3f3fLL;
 9 inline ll read(){
10     ll x=0,f=1;char ch=getchar();
11     while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
12     while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
13     return x*f;
14 }
15 //
16 const int maxn = 1e2+10;
17
18 int n,m,k,e;
19 int flag[maxn][maxn],f[maxn],d[maxn],dp[maxn];
20 vector<pair<int,int> > G[maxn];
21
22 int cost(int s,int e){
23     MS(f);
24     for(int i=1;i<=m;i++)
25         d[i]=INF;
26
27     for(int i=1; i<=m; i++){
28         for(int j=s; j<=e; j++)
29             if(flag[i][j])
30                 f[i] = 1;
31     }
32
33     queue<int> q;
34     d[1] = 0;
35     q.push(1);
36     while(!q.empty()){
37         int u = q.front(); q.pop();
38         for(int i=0; i<(int)G[u].size(); i++){
39             pair<int,int> p = G[u][i];
40             int v = p.first, w = p.second;
41             if(f[v]) continue;
42             if(d[v] > d[u]+w){
43                 d[v] = d[u]+w;
44                 q.push(v);
45             }
46         }
47     }
48     // cout << d[m] << "  pp\n";
49     int ans = d[m]*(e-s+1);
50     return ans;
51 }
52
53 int main(){
54     scanf("%d%d%d%d",&n,&m,&k,&e);
55     for(int i=0; i<e; i++){
56         int u,v,w; scanf("%d%d%d",&u,&v,&w);
57         G[u].push_back(MP(v,w));
58         G[v].push_back(MP(u,w));
59     }
60
61     int d = read();
62     for(int i=0; i<d; i++){
63         int u,ii,jj;
64         scanf("%d%d%d",&u,&ii,&jj);
65         for(int j=ii; j<=jj; j++)
66             flag[u][j] = 1;
67     }
68     // cout << "hh\n";
69     for(int i=1; i<=n; i++){
70         dp[i] = cost(1,i);
71         // cout << dp[i] << "  kk\n";
72         for(int j=1; j<i; j++)
73             dp[i] = min(dp[i],dp[j]+cost(j+1,i)+k);
74     }
75
76     cout << dp[n] << endl;
77
78     return 0;
79 }

转载于:https://www.cnblogs.com/yxg123123/p/6827643.html

BZOJ 1003 物流运输trans dijstra+dp相关推荐

  1. BZOJ 1003 物流运输 最短路+dp

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1003 题目大意: 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才 ...

  2. BZOJ 1003 物流运输

    1003: [ZJOI2006]物流运输 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 6766  Solved: 2796 [Submit][St ...

  3. [BZOJ]1003 物流运输题解

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

  4. bzoj 1003物流运输 区间dp+spfa

    基本思路: 一开始确实没什么思路,因为觉得怎么着都会超时,然后看一下数据范围,呵,怎么都不会超时. 思路: 1.看到能改变线路,想到可以用以下区间dp,区间dp的话,先枚举长度,枚举开始位置,然后枚举 ...

  5. BZOJ 1003: [ZJOI2006]物流运输trans

    二次联通门 : BZOJ 1003: [ZJOI2006]物流运输trans /*BZOJ 1003: [ZJOI2006]物流运输transSpfa + DpSpfa预处理出i到j天的最小花费然后N ...

  6. [bzoj1003]物流运输trans

    1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3922  Solved: 1624 [Submi ...

  7. 【bzoj1003】[ZJOI2006]物流运输 最短路+dp

    传送门:嘿原题在这 题意:给出一个图,求1-m的最短路,但其中有些点在某些时间段会不能用,题目保证有解. 我们可以很(不)容易的看出递推关系式dp[i]=min(dp[i],dp[j]+cost[j+ ...

  8. 【BZOJ】1003: [ZJOI2006]物流运输trans(SPFA+DP)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1003 这题一开始看是不会的额,,,还是看题解了..一开始我觉得不能用最短路啥的,,看了题解发现这是d ...

  9. 1003. [ZJOI2006]物流运输【区间DP+最短路】

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

最新文章

  1. 皮一皮:防狼泳衣...
  2. Microsoft Visual Studio Learning Pack 自动生成流程图插件(转)
  3. 30分钟带你熟练性能优化的那点儿事儿(案例说明)
  4. 线性回归代码matlab
  5. BZOJ-2716-天使玩偶angel-CDQ分治
  6. 增加myEclipse的非堆内存
  7. 音视频技术开发周刊 | 190
  8. video.min.js php,在WordPress中使用videojs来播放七牛私有空间视频
  9. java的type转化class_第七章 (类型转换)Type Convertion
  10. python中字符串函数的作用_python 基础学习笔记(2)---字符串功能函数
  11. 查询一个表插入数据的时间,按BLOCK时间
  12. 如何实现远程给PLC上下载程序?
  13. 前端的三种缓存技术cookie、localStorage、sessionStorage
  14. 汽车冬季养护的四个重点
  15. 路由器的两种工作模式
  16. RK3399 Android7.1修改安兔兔等第三方软件读到的内核版本信息
  17. 面试手册第五版更新了!(面试必备)
  18. Solarwinds使用方法
  19. linux sh gt tty,如何将简单的Shell转换成为完全交互式的TTY
  20. Mapped Statements collection already contains value for com.ithaima.ssm.dao.IUserDao.save

热门文章

  1. Asp.net服务器端控件CheckBoxList的使用心得
  2. Sql 中取小数点后面两位小数.
  3. CVPR 2014 ObjectnessBING 原文翻译
  4. centos 6.5安装GitLab全过程和问题记录
  5. phpinfo信息泄漏
  6. Ansible之八:Playbook循环
  7. 《VMware vSphere企业运维实战》——2.6 使用vCenter Converter迁移物理机到虚拟机
  8. DNS服务(二)——常用资源记录类型详解
  9. 一个“Internal”牵扯出的代码泄露,阿里云独家回应
  10. WWDC 2018 New Localization Workflows