洛谷P4009汽车加油行驶问题——网络流24题(最短路)

题目:https://www.luogu.org/problemnew/show/P4009

网络流24题中不是网络流的最短路题;

把每个点拆成各个油量上的点,根据要求连边即可;

注意:点数最大为100*100*11,因为虽然k<=10,但还有k=0的状态!(竟然因为边界调了一晚上)

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
typedef long long ll;
queue<int>q;
int const MAXN=110005,inf=1e9;//MAXN不可为100005 
int n,k,a,b,c,nd[15][105][105],cnt,ct=1,head[MAXN];
int dis[MAXN];
bool vis[MAXN];
struct N{
    int to,next,w;
    N(int t=0,int n=0,int w=0):to(t),next(n),w(w) {}
}edge[MAXN*50];
void spfa()
{
    memset(dis,63,sizeof dis);
    int s=nd[k][1][1];
    dis[s]=0;vis[s]=1;q.push(s);
    while(q.size())
    {
        int x=q.front();q.pop();vis[x]=0;
//        cout<<x<<endl;
        for(int i=head[x];i;i=edge[i].next)
        {
            int u=edge[i].to;
            if(dis[u]>dis[x]+edge[i].w)
            {
//                cout<<dis[x]<<endl;
                dis[u]=dis[x]+edge[i].w;
                if(!vis[u])vis[u]=1,q.push(u);
            }
        }
//        cout<<q.size()<<endl;
    }
//    cout<<"spfa"<<endl;
//    ll mn=inf;
//    for(int l=0;l<=k;l++)
//        mn=min(mn,dis[nd[l][n][n]]);
    printf("%d",dis[cnt+1]);
}
int main()
{
    scanf("%d%d%d%d%d",&n,&k,&a,&b,&c);//a加油 b返回 c建库 
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            for(int l=0;l<=k;l++)
                nd[l][i][j]=++cnt;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        {
            bool d;
            scanf("%d",&d);
            if(!d)
            {
                edge[++ct]=N(nd[k][i][j],head[nd[0][i][j]],a+c),head[nd[0][i][j]]=ct;
                for(int l=1;l<=k;l++)
                {
                    int x=nd[l][i][j];            
                    if(i>1)edge[++ct]=N(nd[l-1][i-1][j],head[x],b),head[x]=ct;
                    if(j>1)edge[++ct]=N(nd[l-1][i][j-1],head[x],b),head[x]=ct;
                    if(i<n)edge[++ct]=N(nd[l-1][i+1][j],head[x],0),head[x]=ct;
                    if(j<n)edge[++ct]=N(nd[l-1][i][j+1],head[x],0),head[x]=ct;
//                    if(l<k)edge[++ct]=N(nd[k][i][j],head[x],a+c),head[x]=ct;//不优! 
                }
            }
            if(d)
            {
                int x=nd[k][i][j];
                for(int l=0;l<k;l++)
                    edge[++ct]=N(x,head[nd[l][i][j]],a),head[nd[l][i][j]]=ct;
                if(i>1)edge[++ct]=N(nd[k-1][i-1][j],head[x],b),head[x]=ct;
                if(j>1)edge[++ct]=N(nd[k-1][i][j-1],head[x],b),head[x]=ct;
                if(i<n)edge[++ct]=N(nd[k-1][i+1][j],head[x],0),head[x]=ct;
                if(j<n)edge[++ct]=N(nd[k-1][i][j+1],head[x],0),head[x]=ct;
            }
        }
    for(int l=0;l<=k;l++)
        edge[++ct]=N(cnt+1,head[nd[l][n][n]],0),head[nd[l][n][n]]=ct;
//    cout<<cnt<<endl; 
    spfa();
    return 0;
}

 

转载于:https://www.cnblogs.com/Zinn/p/8799803.html

基于Java17、SpringBoot、vue3、antdv-next、uniapp等主流技术构建的全场景极速开发平台 MDP内置3个web端、1个移动端 重点解决用户中心、开发者平台、管理后台3个应 MDP-主数据平台,后端项目。专注于单点登录解决方案。内置用户中心、开发者平台、管理后台3个应用。包含:单点登录、Oauth2 登录、用户身份管理、应用申请、应用接入、主数据维护、主数据订阅、主数据广播、应用接口调用、接口管理管理和查看、系统配置等功能。 立即下载

相关推荐

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?.docx

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?

洛谷4009 汽车加油行驶问题 分层图最短路

题目链接 题意: 有一个n*n的网格,每次车沿格子走一格,有些格子有加油站,路过加油站必须加油,可以额外花c元在任意一个点加油,每次加了油之后能走k步,向上或者向左走要额外花b元,问从(1,1)到(n,n)的最小花费。 题解: 分k+1层建图,表示上次加了油之后当前已经走了k步,我们规定层数为0-k,图上的边权根据题意都比较容易确定,这里就简单介绍一下建边方法。对于每一层,如果到了一个加油...

forever_shi的博客 430

usb 扩容盘检测修复工具源码,编译产物

usb 扩容盘检测修复工具源码,编译产物

洛谷 - P4009 汽车加油行驶问题(分层图最短路/最小费用最大流)

题目链接:点击查看 题目大意:给出一个n*n的矩阵表示道路,途中有一些加油站,现在要从点(1,1)到达点(n,n),问最小花费,其中的一些规则如下: 汽车只能沿着网格边行驶,装满油后可以行驶K条边,出发时已经装满油 汽车经过一条网格边时,若x或y减小,需要花费B元,其余情况没有花费 汽车在行驶过程中遇到油库则必须强制加满油,并花费A元 在需要时可以在网格点增设临时油库,并支付花费C元(不...

Falcon的博客 1110

融合UWB和IMU割草机定位EKF研究(Matlab代码实现)

内容概要:本文主要介绍了一个名为“Plecs全桥LLC谐振变换器仿真模型”的技术资源,该资源聚焦于电力电子领域中的LLC谐振变换器建模与仿真,涵盖开环、闭环控制、软启动设计及参数优化等核心内容。文档不仅提供了LLC变换器的详细建模方法与仿真案例,还系统梳理了其在高效电源转换系统中的应用,包括隔离型全桥拓扑结构的设计与性能分析。此外,资源汇总了大量Matlab/Simulink仿真模型及相关科研方向,涉及新能源并网、储能控制、电机驱动等多个前沿领域,全面展示LLC谐振变换器在现代电力系统中的关键技术实现路径。同时,文档附带多种学习资料获取途径,如网盘链接和公众号资源,便于研究人员深入实践与拓展研究。; 适合人群:具备扎实的电力电子、自动控制理论基础,从事新能源发电、开关电源设计、电力系统仿真等相关领域的研究生、工程师及科研人员。; 使用场景及目标:①深入理解LLC谐振变换器的工作原理、建模方法与控制策略;②开展电力电子变换器的仿真验证与参数优化设计;③支撑科研项目、学位论文或工程项目的系统仿真与方案验证; 阅读建议:建议结合所提供的仿真模型与参考文献,使用Plecs或Simulink软件进行动手实践,重点掌握LLC谐振变换器的建模流程、闭环控制设计、软启动机制及参数调试技巧,以全面提升在实际工程中的应用与创新能力。

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)内容概要:本文主要介绍了基于Plecs的全桥LLC谐振变换器仿真模型,涵盖变频控制下的多相交错LLC谐振变换器闭环仿真、V2G电动汽车ACDC整流与双向CLLC谐振变换器充放电仿真、LLC谐振变换器的开环与闭环软启动设计,以及储能系统中双向Buck-Boost变换器结合模型预测电流控制和电压下垂控制的仿真研究。同时,文档列举了多种电力电子系统与控制策略的Simulink/Plecs仿真案例,涉及三相交错并联Buck变换器、三电平Buck直流变换器、单相Boost PFC电路等,展示了丰富的电力变换器建模与控制技术。此外,还包括参数设计报告、计算书及相关参考文献,适用于从事电力电子、新能源发电、电动汽车充放电系统等领域的研究人员和技术开发人员。; 适合人群:具备电力电子、自动控制理论基础,从事新能源、电动汽车、电力系统等相关领域研究的研发人员、高校研究生及高年级本科生。; 使用场景及目标:① 学习和掌握LLC谐振变换器及其他典型电力电子变换器的工作原理与建模方法;② 实现闭环控制策略如变频控制、软启动、模型预测控制、下垂控制等的仿真验证;③ 支持科研项目、毕业设计或工程开发中的系统仿真与优化设计。; 阅读建议:建议结合文中提供的仿真模型、设计报告与参考文献,逐步搭建并调试相应系统,重点关注控制策略的实现细节与参数整定过程,以深入理解系统动态响应特性与控制性能。

洛谷 P4009 汽车加油行驶问题 题解

原题题面 网络流24题?费用流?不存在的 tag都是骗人的 首先看题,仔细想想,这不就是一个最短路吗? 然而本蒟蒻看不出一些题解中说的分层图最短路,于是直接写单源最短路 从(1,1)往(n,n)跑最短路,以dis[x][y][res]来记录当位于(x,y)时还能再跑res条边的最小花费 每次扩展节点的时候更新加油的花费,注意当(x,y)有油库时强制加油,没有时可...

weixin_30393907的博客 235

【Python】SimpleITK使用笔记

1. 概念 1.1 nii格式 1.2 SimpleITK 1.3 SimpleITK 图像 2. 基本操作 2.1 常见属性 2.1 读取和保存图像 2.2 SimpleITK图像数据和Numpy矩阵数据之间的转换

See_Star的博客 7899

洛谷P4009 汽车加油行驶问题(分层最短路)

传送门 说好的网络流24题呢……上次是状压dp,这次怎么又最短路了…… 不过倒是用这题好好学了一下分层图最短路 把每一个位置$(x,y)$,油量剩余$k$表示为一个状态,然后转化成一个$n$进制数,这样每一个状态都可以唯一表示。能互相转移的状态之间连有向边,然后跑一个最短路就行了 具体细节看代码好了……细节太多说不清楚…… ps:据说还可以用这个思想跑费用流,我估摸着大概是建源$S...

weixin_33721427的博客 170

视觉巡线小车(STM32+OpenMV)——技术总结

在现代机器人技术中,视觉巡线是一种常见的导航方式,它允许机器人通过识别和跟踪地面上的线路来自主导航。本文将总结使用STM32微控制器和OpenMV视觉模块来实现视觉巡线小车的关键技术和步骤。

weixin_66608063的博客 3078

Android 的端智能学习路径

基础层:先补齐 Android 进阶(JNI / 性能优化)和 AI 基础概念,无需深入算法开发;核心层:掌握 TFLite 的模型加载、推理、量化,能完成基础端侧推理;落地层:聚焦实战场景(图像 / OCR / 语音),解决工程化问题(模型管理、异常处理);优化层:通过模型量化、硬件加速、工程优化,提升推理性能和用户体验。

hqiangtai的博客 345

洛谷 P4011 孤岛营救问题【最短路+分层图】

题外话:昨夜脑子昏沉,今早一调试就过了...错误有:我忘记还有墙直接穿墙过...memset初始化INF用错了数...然后手残敲错一个状态一直过不了样例...要是这状态去比赛我简直完了......orz 题目链接:https://www.luogu.org/problemnew/show/P4011 输入输出样例 输入样例#1: 4 4 9 9 1 2 ...

dhe56357的博客 268

GSview5.0安装步骤及问题

GSview5.0安装步骤及问题安装步骤遇到的问题 尝试过很多对图片去白边的方法,感觉最好用最有效的还是用GSview比较好操作。本文针对gsview安装及安装过程中踩过的坑记录下来。 安装步骤 在官网下载gsv50w64.exe(或32位的),直接双击安装即可。 安装Ghostscript;注意:GSview5.0不支持最新版的Ghostscript9.54,这里用到是9.27的版本可以在Github中找到,下载gs927w64.exe,一定要安装在GSview的安装目录Ghostgum下 Gho

LilianLYN的博客 1万+

2018.10.21【网络流24题】【洛谷P4009】【LOJ6223】汽车加油行驶问题(最短路/费用流)...

洛谷传送门 LOJ传送门 解析: 啊啊啊啊,这道题和网络流关系大吗?大吗?大吗? 就算是费用流来做实际上增广的过程也只被执行了一次,本质上仍然是最短路。 其实就是跑分层图的最短路,主要说说怎么构建分层图。 一看这个kkk不好维护,它对路径的费用及贡献都十分的不可控,由于有一个强制消费机制的存在,我们根本没有办法令kkk在状态中表示一个特定...

anlongyi8087的博客 204

【智驾与大模型】端到端与多模态大模型的精彩之旅

智驾和大模型的回顾与展望。开头的笔者自述也说了些心窝子话,边缘计算的监管刻不容缓!

仿生实验室:从0到1,制作人脸表情交互机器人,记录过程,软硬件全部开源,与君共襄盛举! 1320

基于STM32与ESP8266的MQTT协议实现阿里云物联网平台远程LED控制

本文详细介绍了如何利用STM32单片机与ESP8266 Wi-Fi模块,通过MQTT协议连接阿里云物联网平台,实现远程控制LED灯的完整物联网项目。内容涵盖硬件连接、阿里云平台配置、MQTT协议与AT指令解析、STM32代码实战以及数据解析与调试技巧,为嵌入式开发者提供了一个清晰、实用的物联网入门实践指南。

svm4gardener的博客 792

2018.10.21【网络流24题】【洛谷P4009】【LOJ6223】汽车加油行驶问题(最短路/费用流)

传送门 解析: 啊啊啊啊,这道题和网络流关系大吗?大吗?大吗? 就算是费用流来做实际上增广的过程也只被执行了一次,本质上仍然是最短路。 其实就是跑分层图的最短路,主要说说怎么构建分层图。 一看这个kkk不好维护,它对路径的费用及贡献都十分的不可控,由于有一个强制消费机制的存在,我们根本没有办法令kkk在状态中表示一个特定的东西。 那么我们令dist[(i,j,k)]dist[(i,j,k)]di...

zxyoi_dreamer的博客(不定期诈尸) 247

【架构设计】DDD 到底解决了什么问题

DDD作为架构设计思想帮助微服务控制规模复杂度,那它是怎么做到的呢?第一章提出了架构的根本目是解决系统复杂度,并简要说明系统复杂度的六个来源及通用解法,为我们设计架构提供了清晰可执行的操作思路。

DreamSun的博客 1161

洛谷·[网络流24题]汽车加油行驶问题

洛谷P4009 [网络流24题] 汽车加油行驶问题 分层图最短路 最小费用流

樱狸✨愿携清风归来处 391

嵌入式AI实战:基于RK3588部署YOLOv11并集成OpenCV实现实时推理(全流程详解)

本文详细介绍了在RK3588芯片上部署YOLOv11目标检测模型的全流程,包括环境搭建、模型转换和实时推理实现。主要内容为:1)通过YOLOv11官方工具将PyTorch模型转为ONNX格式;2)使用RKNN Toolkit2将ONNX模型转换为适配RK3588的RKNN格式;3)在RK3588上结合OpenCV实现实时视频推理功能。教程提供了完整的代码示例和详细步骤说明,帮助开发者快速在边缘设备上部署目标检测模型,实现AI视觉应用的落地。

LXY_LOVE36的博客 214

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

洛谷 P4009 汽车加油行驶问题 (分层图最短路)

题目要满足三个条件: 1:汽车经过一条网格边时,若其 X 坐标或 Y 坐标减小,则应付费用 B ,否则免付费用。 2:汽车在行驶过程中遇油库则应加满油并付加油费用 A。 3:在需要时可在网格点处增设油库,并付增设油库费用 C(不含加油费用A )。 4:汽车只能沿网格边行驶,装满油后能行驶 K 条网格边。 思路:这题是洛谷网络流24题里的,但是题解都是清一色的最短路哈哈。建图跑最短路。根据费用分层,因为装满油只能走k次,所以我们分为k+1层,第0层代表满油,第一层代表消耗了一单位油。 对于第一个条件:我们在这

我是蒋卫升呀~ 473

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

洛谷 P4009 汽车加油行驶问题(最小费用流)

汽车加油行驶问题 题目链接:https://www.luogu.org/problem/P4009 题意 有n*n的方格网络,一辆车初始在(1,1),目标为(n,n),车的油箱大小为k,初始油箱满的,每次可以往上下左右走一步,耗油1,部分格点上有加油站,路过必须加油,代价A,同时如果汽车往上走或往左走,代价为B,可以在某些格点增设加油站,需要代价C,求到达目标点的最小花费。 题解: 网络流24题,...

sigh_的博客 636

IEM模型,地表粗糙度模拟

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

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

[网络流24题] 洛谷P4009 汽车加油行驶问题 状压+最短路

给出n×nn×nn×n的格点图,起点在(1,1)(1,1)(1,1),终点在(n,n)(n,n)(n,n)。一开始的油量为kkk,然后每次沿着一条边移动,会消耗111的单位的油。若XXX或者YYY增大则不需要费用,否则需要BBB的费用。另外其中的一些点是油库,遇到了就会把油加满,但要多支付AAA的费用。另外也可以当场建立一个新的油库,这个需要CCC的费用。 先把图建出来,然后跑最短路的时候加入状态...

qq_40859782的博客 175

网络流(17/24)

题目均来自洛谷。 S为源点,T为汇点。 P2756 飞行员配对方案问题 二分图板子,跑完后,看看match的值就好了。 P2763 试题库问题 把种类到题目连起来流量为1, 题目到T流量为1, S到种类流量为需要的题数。 跑最大流后看种类结点的出边的capcapcap有没有被用掉就好(注意有到S的反向边)。 P4014 分配问题 人到工作流量为1费用为Ci,jC_{i,j}Ci,j​,S到人流量为...

Rshs 305
上一篇: poj3613Cow Relays——k边最短路(矩阵快速幂)
下一篇: 洛谷P4013数字梯形问题——网络流24题
aodan5477
博客等级 码龄11年 3粉丝 186原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值