BZOJ 1003 物流运输trans dijstra+dp
题目链接:
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相关推荐
- BZOJ 1003 物流运输 最短路+dp
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1003 题目大意: 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才 ...
- BZOJ 1003 物流运输
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 6766 Solved: 2796 [Submit][St ...
- [BZOJ]1003 物流运输题解
BZOJ1003 物流运输 Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转 停好几个码头.物流公司通常会设计一条固定的运输路 ...
- bzoj 1003物流运输 区间dp+spfa
基本思路: 一开始确实没什么思路,因为觉得怎么着都会超时,然后看一下数据范围,呵,怎么都不会超时. 思路: 1.看到能改变线路,想到可以用以下区间dp,区间dp的话,先枚举长度,枚举开始位置,然后枚举 ...
- BZOJ 1003: [ZJOI2006]物流运输trans
二次联通门 : BZOJ 1003: [ZJOI2006]物流运输trans /*BZOJ 1003: [ZJOI2006]物流运输transSpfa + DpSpfa预处理出i到j天的最小花费然后N ...
- [bzoj1003]物流运输trans
1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3922 Solved: 1624 [Submi ...
- 【bzoj1003】[ZJOI2006]物流运输 最短路+dp
传送门:嘿原题在这 题意:给出一个图,求1-m的最短路,但其中有些点在某些时间段会不能用,题目保证有解. 我们可以很(不)容易的看出递推关系式dp[i]=min(dp[i],dp[j]+cost[j+ ...
- 【BZOJ】1003: [ZJOI2006]物流运输trans(SPFA+DP)
http://www.lydsy.com/JudgeOnline/problem.php?id=1003 这题一开始看是不会的额,,,还是看题解了..一开始我觉得不能用最短路啥的,,看了题解发现这是d ...
- 1003. [ZJOI2006]物流运输【区间DP+最短路】
Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转 停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严 ...
最新文章
- 皮一皮:防狼泳衣...
- Microsoft Visual Studio Learning Pack 自动生成流程图插件(转)
- 30分钟带你熟练性能优化的那点儿事儿(案例说明)
- 线性回归代码matlab
- BZOJ-2716-天使玩偶angel-CDQ分治
- 增加myEclipse的非堆内存
- 音视频技术开发周刊 | 190
- video.min.js php,在WordPress中使用videojs来播放七牛私有空间视频
- java的type转化class_第七章 (类型转换)Type Convertion
- python中字符串函数的作用_python 基础学习笔记(2)---字符串功能函数
- 查询一个表插入数据的时间,按BLOCK时间
- 如何实现远程给PLC上下载程序?
- 前端的三种缓存技术cookie、localStorage、sessionStorage
- 汽车冬季养护的四个重点
- 路由器的两种工作模式
- RK3399 Android7.1修改安兔兔等第三方软件读到的内核版本信息
- 面试手册第五版更新了!(面试必备)
- Solarwinds使用方法
- linux sh gt tty,如何将简单的Shell转换成为完全交互式的TTY
- Mapped Statements collection already contains value for com.ithaima.ssm.dao.IUserDao.save
热门文章
- Asp.net服务器端控件CheckBoxList的使用心得
- Sql 中取小数点后面两位小数.
- CVPR 2014 ObjectnessBING 原文翻译
- centos 6.5安装GitLab全过程和问题记录
- phpinfo信息泄漏
- Ansible之八:Playbook循环
- 《VMware vSphere企业运维实战》——2.6 使用vCenter Converter迁移物理机到虚拟机
- DNS服务(二)——常用资源记录类型详解
- 一个“Internal”牵扯出的代码泄露,阿里云独家回应
- WWDC 2018 New Localization Workflows