bzoj 1003 [ZJOI2006]物流运输trans 最短路+DP

java运输管理系统TMS 很详细的运输管理系统,涉及8个表格的增删改操作!对你一定有帮助! 立即下载

                           bzoj 1003 物流运输trans

Description

物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。但是修改路线是一件十分麻烦的事情,会带来额外的成本。因此物流公司希望能够订一个n天的运输计划,使得总成本尽可能地小。

Input

第一行是四个整数n(1<=n<=100)、m(1<=m<=20)、K和e。n表示货物运输所需天数,m表示码头总数,K表示每次修改运输路线所需成本。接下来e行每行是一条航线描述,包括了三个整数,依次表示航线连接的两个码头编号以及航线长度(>0)。其中码头A编号为1,码头B编号为m。单位长度的运输费用为1。航线是双向的。再接下来一行是一个整数d,后面的d行每行是三个整数P( 1 < P < m)、a、b(1 < = a < = b < = n)。表示编号为P的码头从第a天到第b天无法装卸货物(含头尾)。同一个码头有可能在多个时间段内不可用。但任何时间都存在至少一条从码头A到码头B的运输路线。

Output

包括了一个整数表示最小的总成本。总成本=n天运输路线长度之和+K*改变运输路线的次数。

Sample Input

5 5 10 8
1 2 1
1 3 3
1 4 2
2 3 2
2 4 4
3 4 1
3 5 2
4 5 2
4
2 2 3
3 1 1
3 3 3
4 4 5

Sample Output

32


最短路+DP,最短路用SPFA即可
为什么不能直接用SPFA?
路径改变次数难以统计

#include<cstdio>
#include<iostream>
#include<cstring>
#include<queue>
#define MAXN 30
#define M 1100
#define INF 100000
using namespace std;


using namespace std;

bool used[MAXN];
vector <pair<int ,int > >g[MAXN+10];
int val[M],t,n,m,k,e,d,ans=0;
int dis[MAXN],dp[M],can[200][200],pt[M],st[M],ed[M];;
int len[MAXN];


void addedge(int u,int v,int w)
{
    g[u].push_back(pair<int ,int > (v,w));
    g[v].push_back(pair<int ,int > (u,w));
}
inline void build(int l,int r)
{
    memset(used,false,sizeof used);
    for(int i=1;i<=d;i++)
    {
        if(st[i]>r||ed[i]<l) continue;
        used[pt[i]]=true;
    }
}
int SPFA()
{
    for(int i=1;i<=100;i++)
        dis[i]=1000000;
    dis[1]=0;
    queue <int> que;
    while(!que.empty())que.pop();

    que.push(1);
    used[1]=true;
    while(!que.empty())
    {
        int u=que.front();
        que.pop();
        for(int i=0; i<g[u].size(); i++)
        {
            //cout<<dis[g[u][i].first]<<endl;
            if(dis[g[u][i].first]>dis[u]+g[u][i].second)
            {
                dis[g[u][i].first]=dis[u]+g[u][i].second;
                if(!used[g[u][i].first])
                {
                    used[g[u][i].first]=true;
                    que.push(g[u][i].first);
                    // cout<<g[u][i].first<<endl;
                }
            }
        }
        used[u]=false;
    }
    return dis[m];

}

int main()
{
    scanf("%d%d%d%d",&n,&m,&k,&e);
    for(int i=1,p,a,b; i<=e; i++)
    {
        scanf("%d%d%d",&a,&b,&p);
        addedge(a,b,p);
    }
    scanf("%d",&d);
    for(int i=1;i<=d;i++) scanf("%d%d%d",&pt[i],&st[i],&ed[i]);
    for(int i=1;i<=n;i++)
        for(int j=i;j<=n;j++)
        {
            build(i,j);
            can[i][j]=SPFA();
        }
    dp[0]=0;
     for(int i=1;i<=n;i++)
        for(int j=1;j<=i;j++)
        {
            if(can[j][i]>=1000000||dp[j-1]>=1000000) continue;
            dp[i]=min(dp[i],dp[j-1]+can[j][i]*(i-j+1)+k);
        }
    printf("%d",dp[n]-k);
    return 0;
}


Linux下离线安装Google Chrome 目录背景一、下载并安装Google Chrome二、下载并安装依赖包1.libvulkan.so.1()(64bit)2.读入数据总结 背景 项目中服务器被要求不能连接外网,不能直接联网安装,所以需要下载Google Chrome安装包和依赖包,然后离线安装。 linux下步骤都一样,不管ubuntu还是centos只是需要下载对应系统的文件包即可。 本机系统:CentOS 7 一、下载并安装Google Chrome 官方下载地址http://www.google.cn/chrome/browser/d 阅读详情

相关推荐

RimWorld Mod开发避坑指南:从Defs命名规范到XML结构详解(附实战代码)

本文深入解析RimWorld Mod开发中Defs文件的编写规范与高级技巧,涵盖命名冲突预防、XML结构优化及高级功能实现。通过实战代码示例,帮助开发者避开常见陷阱,提升Mod兼容性与稳定性,特别适合RimWorld Mod开发者参考。

weixin_30790841的博客 450

Buggy Robot(Dijkstra + DP)

原题链接 参考 题意 思路 dp思路 + dijkstra dp: d[i][j][k]d[i][j][k]d[i][j][k] 表示用前k步时走到 (i,k)(i,k)(i,k) ,最小的修改次数, 下面公式给的都只是一个大概意思,可以这样理解,实际上用优先队列版的Dijkstra时需要写成if判断的形式,判断最小值是否更新再放进队列。 添一步走: d[x + xx[i]][y + yy[i]][k] = min ( d[x

123 534

LatentSync:开源数字人唇形同步技术的实战部署与优化指南

本文详细介绍了开源数字人唇形同步工具LatentSync的实战部署与优化全流程。从核心原理(潜在扩散模型与TREPA技术)解析,到手把手完成环境搭建、模型获取及首次推理。文章深入探讨了自定义素材处理、关键参数调优(如guidance_scale),并提供了显存不足、人脸检测失败等常见问题的解决方案与性能优化技巧,旨在帮助用户高效部署并提升生成效果。

9o8p7i6u5y的博客 1004

Dijkstra算法有关贪心与DP思想方面的思考

关于Dijkstra算法的讲解请参考这位大佬的博客:https://blog.youkuaiyun.com/heroacool/article/details/51014824 起 算法老师布置了一个作业:Dijkstra算法是求解有向图最短路径的一个经典算法,也是应用贪心法的一个成功实例,请描述Dijkstra算法的贪心策略和具体算法。说实话,我一开始并未当作一回事,因为在我的印象里Dijkstra算法是一个虽然巧妙但并不复杂和难以理解的算法,于是我踏上了一条漫漫求索路。 承 我一开始对贪心法的认知还停留在贪心法就是

swl152的博客 1191

开源libmodbus编译为32位和64位动态库

libmodbus 是支持Linux,Mac OS X,window 的一个开源库,支持modbus TCP和RTU 两种模式。

lemontree1945的博客 1922

开源收银系统_大型收银系统源码_OctShop

开源收银系统正成为大型连锁企业数字化转型的关键工具。相比传统闭源系统,开源方案具有成本低(年均降本60%+)、定制灵活(支持多业态协同)、自主可控等优势,能有效解决高并发、多门店数据同步等痛点。核心价值在于:1)分布式架构适配规模化扩张;2)模块化设计实现个性化开发;3)开放接口打通ERP/CRM等系统。典型案例显示,连锁商超通过源码二次开发实现库存实时同步,补货效率提升50%;餐饮集团统一多业态收银流程后会员复购率增长35%。选型需关注源码成熟度、技术兼容性和安全合规,建议采用"开源+服务商&q

OctShop全栈工程师 938

[ZJOI2006]物流运输

[ZJOI2006]物流运输 题目 物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。但是修改路线是一件十分麻烦的事情,会带来额外的成本。...

weixin_30908941的博客 184

C# & SQL Server 实时数据同步:7步轻松搞定,代码详解

实时数据同步是指在一个数据库中的数据发生变化时,能够立即或近乎立即地将这些变化同步到另一个数据库中。这种同步可以是单向的(从源数据库同步到目标数据库),也可以是双向的(两个数据库互相同步)。通过本文的详细讲解和代码示例,相信你已经学会了如何使用C#和SQL Server实现数据库的实时数据同步。实时数据同步不仅可以提升系统的响应速度,还能确保数据的一致性和准确性。希望这篇教程对你有所帮助,期待你在C#编程中取得更大的成就!🌟✨如果你有任何问题或建议,欢迎在评论区留言交流!

java专栏 514

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

题目地址 题目大意:N天,M个码头,从1到M点的最短路径,给出连通路径及运输成本, 不过有时码头禁止通过,可能要改变路线,每次改变路线要K元成本,求N天运输最低成本 思路:一开始对于题意的理解有点问题。是每天从1-M走一趟,相邻两天不能走同一条路的话就加K元,看了题解的解释,是最短路径+dp问题,处理过程有点麻烦,但是因为数据量小,所以并不是很难,可以先求出假如从i天到第j天走的是同一条路的

AAAAAAAC的博客 395

华为OD机试真题 新系统2026-04-01 C++ 实现【勇攀数字高峰】

请你在给定的数字地形图中寻找登山路径,数字代表当前位置的海拔高度,要求从最低海拔出发,不断攀登,最终到达最高山峰。你需要寻找所有满足条件的登山路径。地图已经保证最低海拔和最高山峰都只有一个。

MISAYAONE的博客 381

YOLO126优化:损失篇 | AAAI 2025 | 一种基于尺度的动态(SD)损失,根据目标大小动态调整尺度和位置损失的影响,提高了网络检测不同尺度目标的能力

提出了一种基于尺度的动态(SD)损失,它根据目标大小动态调整尺度和位置损失的影响,提高了网络检测不同尺度目标的能力。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 444

1003: [ZJOI2006]物流运输

题目链接题目大意:把一批货物从码头A运到码头B,需要n天才能运完。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。修改计划需要一定的费用。制定一个n天的运输计划,使得总成本尽可能地小。题解:看上去比较难……暴力dp就行了。按照天数划分状态,用f[i]表示前i天的最小费用,cost[s][t]表示从第i天走到第j天运用同一种方式的最小花费 转移

蒟蒻的Bzoj记录 518

innovus:ccopt_design分段长tree操作

这步don't touch保证后面完整cts尽量不会动到已经长过的tree。需要给sub tree手写一个spec,参考create_ccopt_clock_tree_spec -file的写法,只写create_ccopt_clock_tree和skew group部分就行。

m0_61544122的博客 1676

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

非常容易的dp,一开始竟然还卡了一下。 dp[i]表示到第i天的最小花费 dp[i]=min{dp[j]+cost[j+1][i]*(i-j)+k} (0 cost[i][j]表示从第i天到第j天的最短路,预处理即可。 #include #include #include #include #include #include #define inf 1000000000 usin

Oxer的专栏 2376

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【bzoj1003】【最短路+DP】【ZJOI2006】物流运输trans

 物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。但是修改路线是一件十分麻烦的事情,会带来额外的成本。因此物流公司希望能够订一个n天的运输计划,使得

OIerHZ的博客 865

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【BZOJ1003】[ZJOI2006]物流运输trans【最短路】【DP】

被水淹没,不知所措。 #include #include using namespace std; const int maxn = 25, maxm = 405, maxq = 10000, inf = 0x3f3f3f3f; int n, m, k, t, head[maxn], cnt, q[maxq], id[maxm], st[maxm], ed[maxm], dp[

BraketBN 632

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

BZOJ1003 ZJOI2006 物流运输trans 最短路+一般DP

题意:一批货物从码头A运到码头B,需要n天才能运完,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。修改路线会带来额外的成本。物流公司希望能够订一个n天的运输计划,使得总成本尽可能地小。 题解: 首先定义cost[i][j]=从第i天到第j天都可以使用的港口所组成的最短路的费用和,初始化出来就好,如果不存在赋值为INF。 定义f[i]为第i天可以...

a18700013354的博客 251

bzoj 1003: [ZJOI2006]物流运输trans 最短路+dp

题目链接 1003: [ZJOI2006]物流运输trans Time Limit:10 SecMemory Limit:162 MBSubmit:5246Solved:2157[Submit][Status][Discuss] Description 物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物...

weixin_30698297的博客 180

[BZOJ1003] [ZJOI2006] 物流运输trans (最短路 & dp)

Description   物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。但是修改路线是一件十分麻烦的事情,会带来额外的成本。因此物流公司希望能够...

weixin_30686845的博客 64

BZOJ 1003: [ZJOI2006]物流运输trans DP+最短路

Description 物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。但是修改路线是一件十分麻烦的事情,会带来额外的成本。因此物流公司希望能够订一个n天...

weixin_30716141的博客 175

bzoj1003: [ZJOI2006]物流运输trans[最短路+DP]

个人觉得是道好题,虽然是比较早之前做的,但是还是要记录一下

AC率最低的傻X 566

【BZOJ】【P1003】【ZJOI2006】【物流运输trans】【题解】【最短路+DP】

传送门: http://www.lydsy.com/JudgeOnline/problem.php?id=1003 看了看……不会……百度题解……

退役狗的专栏 971

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

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

weixin_30593443的博客 78

bzoj1003【zjoi2006】物流运输trans

SPFA+DP

AaronPolaris 1631

[bzoj1003]物流运输trans

1003: [ZJOI2006]物流运输trans Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3922  Solved: 1624 [Submit][Status][Discuss] Description 物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通

Vampire 830
上一篇: bzoj 1002 [FJOI2007]轮状病毒 找规律/基尔霍夫矩阵
下一篇: bzoj [HAOI2008] 糖果传递 贪心
DJS_K_D
博客等级 码龄12年 2粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值