非常容易的dp,一开始竟然还卡了一下。

dp[i]表示到第i天的最小花费

dp[i]=min{dp[j]+cost[j+1][i]*(i-j)+k} (0<=j<i)

cost[i][j]表示从第i天到第j天的最短路,预处理即可。

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#define inf 1000000000using namespace std;bool tag[21],a[21][110],vis[21];
int head[21],to[1010],next[1010],len[1010],dis[21],q[21];
int f[110][110],dp[110];
int n,m,num,k,Day,cnt;void addedge(int x,int y,int z)
{num++;to[num]=y;len[num]=z;next[num]=head[x];head[x]=num;
}void spfa()
{for (int i=2;i<=n;i++) dis[i]=inf;dis[1]=0;int l=0,r=1;q[1]=1;vis[1]=1;while (l!=r){l++;if (l==21) l=0;int x=q[l];for (int p=head[x];p;p=next[p])if (dis[x]+len[p]<dis[to[p]]){dis[to[p]]=dis[x]+len[p];if (!vis[to[p]] && !tag[to[p]]){r++;if (r==21) r=0;q[r]=to[p];vis[to[p]]=1;}}vis[x]=0;}
}int main()
{scanf("%d%d%d%d",&Day,&n,&k,&m);for (int i=1;i<=m;i++){int x,y,z;scanf("%d%d%d",&x,&y,&z);addedge(x,y,z);addedge(y,x,z);}scanf("%d",&cnt);for (int i=1;i<=cnt;i++){int x,l,r;scanf("%d%d%d",&x,&l,&r);for (int j=l;j<=r;j++) a[x][j]=1;}for (int i=1;i<=Day;i++){memset(tag,0,sizeof(tag));for (int j=i;j<=Day;j++){for (int k=1;k<=n;k++) tag[k]|=a[k][j];spfa();f[i][j]=dis[n];}}dp[0]=-k;for (int i=1;i<=Day;i++){dp[i]=inf;for (int j=0;j<i;j++) if (f[j+1][i]!=inf) dp[i]=min(dp[i],dp[j]+f[j+1][i]*(i-j)+k);}printf("%d\n",dp[Day]);return 0;
}

【bzoj1003】[ZJOI2006]物流运输trans 最短路+dp相关推荐

  1. BZOJ1003: [ZJOI2006]物流运输trans(DP)

    传送门 额,这道题拿到过后没有什么有建树的想法--甚至根本就没有往DP哪方面去向(还是题见少了,人太笨了--)所以就偷偷的看了一下discuss,看到了状态转移方程才恍然大悟. f(i)=f(j)+d ...

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

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

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

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

  4. BZOJ1003: [ZJOI2006]物流运输

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

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

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

  6. 【BZOJ1003】【ZJOI2006】物流运输trans 最短路预处理+动态规划

    链接: #include <stdio.h> int main() {puts("转载请注明出处[vmurder]谢谢");puts("网址:blog.csd ...

  7. [Bzoj1003][ZJOI2006]物流运输(spfa+dp)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1003 比较简单的dp,dp[i]为1-i天最小费用,dp方程为dp[i] = min(d ...

  8. 【BZOJ1003】【codevs1655】物流运输,最短路+DP

    传送门1 传送门2 思路: 一直跑最短路不一定是最优解 g[i][j]表示仅走i~j天可通过的码头的最短路 f[i]表示走到第i天的最短路 f[i]=min(f[j]+g[j+1][i]*(i-j)+ ...

  9. 【数据结构】物流运输(最短路DP)

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

最新文章

  1. linux配置ip 网关 和dns(转)
  2. GFS 分布式文件系统从入门到实践
  3. 细数改善WPF应用程序性能的10大方法
  4. 提升研发效率 保障数据安全——阿里云宣布数据管理DMS企业版正式商业化
  5. excanvas让canvas兼容ie7,8
  6. 【逗老师带你学IT】Amazing啊,Zoom落地企业内网IPPBX解决方案,ZOOM可以打国内电话了
  7. VB NetShare
  8. LA 4490 Help Bubu
  9. export default (imported as router) was not found_一篇文章搞定as四大用法
  10. 卡莱特led显示屏调试教程_如何使用卡莱特软件点亮LED电子显示屏
  11. c语言括号里三种字符,c语言的基本数据类型都有什么,麻烦知道用大括号分类,非常感谢...
  12. Windows截图快捷键及自动保存路径
  13. 号外 ! 号外 ! V7包下的View都来此参加同学会 , 快来看,快来看...
  14. 计算机主机麦克风三个孔,台式机耳机和麦克风怎么通用一个插孔
  15. SpringSecurity(安全)
  16. 多线程(一)——委托与多线程
  17. npm介绍与cnpm介绍
  18. js正则表达式进行格式校验
  19. 2012中国移动信息化高峰论坛大会资料免费下载
  20. 2021-2027全球与中国针叶樱桃提取物市场现状及未来发展趋势

热门文章

  1. 蓝桥杯STC基础代码-以定时器计数作为时间轴的模板
  2. ipad怎么和mac分屏_iPad如何进行分屏多任务操作【详细介绍】
  3. mysql binlog协议_mysql binlog协议分析--具体event
  4. aplus翻译_promise/A+规范翻译以及手写实现
  5. c 语言密钥存储,在C中读取和写入rsa密钥到pem文件
  6. “阿里日”102 对新人举办集体婚礼,张勇证婚:“又热,又爱”!
  7. fMRI学习笔记:预处理及数据分析(使用spm12)
  8. 一个phper对mamp和mamp pro的初级体会(MAC系统下)
  9. 深度细节 | Go 的 panic 秘密都在这
  10. DockerSwarm集群搭建-实战