送外卖2(三进制状态dp+最短路)

美团b [编程题] 送外卖2 [编程题] 送外卖2 时间限制:1秒 空间限制:32768K 美团外卖日订单数已经超过1200万,实时调度系统是背后的重要技术支撑,其中涉及很多复杂的算法。下面的题目是某类场景的抽象。一张 n 个点 m 条有向边的图上,有 q 个配送需求,需求的描述形式为( s_i , t_i , l_i , r_i ),即需要从点 s_i 送到 t_i, 在时刻 l_i 之后(包括 l_i)可以在 s_i 阅读详情

送外卖2

题号:NC13252
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述 

美团外卖日订单数已经超过1200万,实时调度系统是背后的重要技术支撑,其中涉及很多复杂的算法。下面的题目是某类场景的抽象。 

一张 nn 个点 mm 条有向边的图上,有 qq 个配送需求,需求的描述形式为( si,ti,li,risi​,ti​,li​,ri​ ),即需要从点 sisi​ 送到 titi​, 在时刻 lili​ 之后(包括 lili​)可以在 sisi​ 领取货物,需要在时刻 riri​ 之前(包括 riri​)送达 titi​ ,每个任务只需完成一次。 图上的每一条边均有边权,权值代表外卖配送员通过这条边消耗的时间。在时刻 00 有一个配送员在 点 11 上,求他最多能完成多少个配送任务。
在整个过程中,我们忽略了取餐与最后给用户递餐的时间(实际场景中这两个时间是无法省略的),只考虑花费在路程上的时间。另外,允许在一个点逗留。 

输入描述:

第一行,三个正整数 n , m , q (2 ≤ n ≤ 20, 1 ≤ m ≤ 400, 1 ≤ q ≤ 10)。
接下来 m 行,每行三个正整数 u_i , v_i , c_i (1 ≤ u_i,v_i ≤ n, 1 ≤ c_i ≤ 20000),表示有一条从 u_i 到 v_i 耗时为 c_i 的有向边。
接下来 q 行,每行四个正整数 s_i , t_i , l_i , r_i (1 ≤ s_i,t_i ≤ n, 1 ≤ l_i ≤ r_i ≤ 10^6),描述一个配送任务。

输出描述:

一个整数,表示最多能完成的任务数量。

示例1

输入

复制

5 4 3
1 2 1
2 3 1
3 4 1
4 5 1
1 2 3 4
2 3 1 2
3 4 3 4

输出

复制

2
const int MAX=10010;
ll dp[22][70010];
int s[22];
int t[22];
int l[22];
int r[22];
ll bit[22];
int dis[22][22];
int n,m,q;
int main(){
    bit[0]=1;
    mms(dis,INF);
    mms(dp,INF);
//三进制状态压缩
    for(int i=1;i<=12;i++){
        bit[i]=bit[i-1]*3;
    }
    cin>>n>>m>>q;
    for(int i=0;i<m;i++){
        int u,v,w;
        cin>>u>>v>>w;
        dis[u][v]=min(dis[u][v],1ll*w); //存储为ll数据 不然无法通过
    }
    for(int i=0;i<q;i++){
        cin>>s[i]>>t[i]>>l[i]>>r[i];
    }
    for(int i=1;i<=n;i++){
        dis[i][i]=0;
    }
//Ford最短路求法
    for(int k=1;k<=n;k++){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(dis[i][j]>dis[i][k]+dis[k][j]){
                    dis[i][j]=dis[i][k]+dis[k][j];
                }
            }
        }
    }
    int ans=0;
    dp[1][0]=0; //dp i-j i是状态 j是此时所在位置
    for(int state=0;state<bit[q];state++){ //state是状态编码
        for(int i=1;i<=n;i++){
            if(dp[i][state]>=INF){
                continue;
            }
            int tot=0;
            for(int j=0;j<q;j++){
                int now=(state/bit[j])%3;
                if(now==0){
                    dp[s[j]][state+bit[j]]=min(dp[s[j]][state+bit[j]],max(dp[i][state]+dis[i][s[j]],1ll*l[j]));
                }
                else if(now==1) {
                    if(dp[i][state]+dis[i][t[j]]<=r[j]){
                        dp[t[j]][state+bit[j]]=min(dp[i][state]+dis[i][t[j]],dp[t[j]][state+bit[j]]);
                    }
                }
                else {
                    tot++;
                }
            }
            ans=max(ans,tot);
        }
    }
    cout<<ans<<endl;
}


MaxDEA如何计算超效率DEA MaxDEA如何计算超效率DEA第一步,导入数据,设置输出和输出,点击OK;第二步,运行模型; 本文计算的是超效率DEA-BCC。 第一步,导入数据,设置输出和输出,点击OK; 第二步,运行模型; 在distance选项框中选择Radial:CCR(1978);BCC(1984)。 在Orientation中选择Non-oriented。其中,Input-oriented是投入最小;Outp... 阅读详情

相关推荐

IAR下载Linux环境适配:入门级安装指导

详细介绍如何在Linux系统中完成iar下载与环境配置,帮助开发者快速上手IAR集成开发环境,解决常见安装问题,提升开发效率。

weixin_35754676的博客 759

牛客网 送外卖2(状压DP+最短路)

链接:https://ac.nowcoder.com/acm/problem/13252来源:牛客网 题目描述 美团外卖日订单数已经超过1200万,实时调度系统是背后的重要技术支撑,其中涉及很多复杂的算法。下面的题目是某类场景的抽象。 一张 n 个点 m 条有向边的图上,有 q 个配送需求,需求的描述形式为( s_i , t_i , l_i , r_i ),即...

weixin_30552811的博客 557

MDM主数据清洗和编码集成说明

绝大多数的企业业务系统是伴随业务发展而建设的,但随着业务发展单一系统难以支撑企业业务闭环。MDM主数据管理平台可以满足企业数据治理的需求,本文针对主数据清洗和编码集成进行梳理。...

数通畅联 3318

题—送外卖2(最短路径&&dfs)

送外卖2 图论,动态规划,BFS,弗洛里德算法 牛客网:送外卖2 题意 ps: 2号代码解释 下次一定(滑稽); n个点,m条有向边,q个外卖点。 q个外卖点信息 卖家位置,顾客位置,卖家做好的时间,顾客要求的时间送达 不管时间,问能送达的最大的外卖的点数。 1-------------------代码如下: 使用BFS解决 #include<iostream> #include<cstring> using namespace std; int read(){ in

weixin_45819197的博客 3012

【Gin框架入门到精通系列01】Gin框架介绍与环境搭建

本文是Gin框架入门到精通系列的第一篇,系统介绍Gin框架的基本概念、核心特性以及环境搭建。无论你是Go语言新手还是有经验的开发者,都能通过本文快速掌握Gin框架的基础知识,创建并运行你的第一个Gin应用。

GopherTribe的博客 1560

基于深度学习实现实时视频目标检测

实时视频目标检测是计算机视觉领域的研究热点之一,其应用场景包括智能监控、自动驾驶、机器人视觉等多个领域。深度学习技术的快速发展使得实时视频目标检测变得更加可行和准确。本文提出一种基于深度学习实现的实时视频目标检测系统,使用Python和OpenCV作为开发工具,具有高效、准确和实时的特点。 本系统的主要需求是实现实时视频目标检测功能,可以在不同的应用场景中使用。具体的需求如下:2.1 视频输入本系统需要从摄像头或视频文件中获取实时视频流,并对视频流中的目标进行检测和跟踪。2.2 目标检测本系统需要使用深度学

分享毕业设计的案例和论文 1940

【状压DP】LibreOJ6177(美团 CodeM 初赛 Round B)[送外卖2]题解

题目概述有 nn 个点( n<20n<20 ), mm 条边, qq ( q<10q<10 )个外卖 (s,t,l,r)(s,t,l,r) 表示在 ll 之后到 ss 接外卖,在 rr 之前到 tt 送外卖。快递员刚开始在 11 ,求最多能够送多少外卖。ps:可以同时带上许多快递。解题报告刚开始以为只能带一个快递……数据范围这么小……要么DFS要么状压DP……先想DFS,发现想要实现“可以同时带多个

ZigZagK的博客 513

【Isaac Sim】无头服务器远程桌面连接实战:Turbovnc配置与常见问题解决

本文详细介绍了在无头GPU服务器上通过Turbovnc远程桌面连接并运行NVIDIA Isaac Sim的实战教程。针对无图形界面服务器运行仿真软件的核心痛点,文章提供了从Turbovnc安装配置、SSH隧道建立,到以普通用户身份启动服务、解决GLXBadFBConfig等常见图形错误的完整方案,帮助开发者在云端高效部署机器人仿真环境。

weixin_29254673的博客 773

[Dp每日训练]送外卖2

题目:送外卖2 分析: 每个任务有三个状态,未开始,已开始未结束,已结束。考虑状压。 dp[i][j]表示所有任务的状态,将每个任务用三进制表示成i,j表示此时在j点,所花费的最少时间。 状态转移的时候先枚举每个任务,然后枚举转移过来的点。 代码: #include <bits/stdc++.h> using namespace std; typedef long long ll;//三年竞赛一场空,不开long long见祖宗 //typedef __int128 lll; #define

玛珈山大萌新 269

YoloV8优化:感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等 | 即插即用系列

感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题

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

试读源码在这里下载

试读文章的源码在这里下载。源码不做任何修改,重点重点重点:为了代码运行不报错,安装matlab 版本为 2021 及以上版本。matlab安装教程大家可以参考这个教程:手把手教你安装matlab软件。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4302

送外卖2(Floyd+三进制状压dp)

题目链接 链接:https://ac.nowcoder.com/acm/problem/13252 来源:牛客网 题目描述 美团外卖日订单数已经超过1200万,实时调度系统是背后的重要技术支撑,其中涉及很多复杂的算法。下面的题目是某类场景的抽象。 一张 nn 个点 mm 条有向边的图上,有 qq 个配送需求,需求的描述形式为( s_i , t_i , l_i , r_is i ​ ,t i ​ ,l i ​ ,r i ​ ),即需要从点 s_is i ​ 送到 t_it i ​ , 在时刻 l_

qq_45928501的博客 468

【OpenClaw从入门到精通】第23篇:OpenClaw办公自动化实战—报表生成+文档批量处理+跨系统同步(2026实操进阶版)

本文聚焦OpenClaw在办公自动化场景的进阶应用,针对职场中高频且重复的报表生成、文档批量处理、跨系统数据同步三大痛点,提供从环境搭建、原理讲解到完整代码实现的全流程实操指南。方案基于Python生态工具链(pandas、Playwright、PyPDF2等)与OpenClaw的低代码编排能力,兼顾新手入门与进阶提升——新手可直接复用代码快速落地,进阶读者可学习流程编排逻辑进行二次开发。所有案例均基于真实办公场景设计,部分虚拟场景已明确标注,代码经本地环境验证可复现。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 965

loj6177 「美团 CodeM 初赛 Round B」送外卖2 最短路+状压dp

题目传送门 https://loj.ac/problem/6177 题解 一直不知道允不允许这样的情况:取了第一的任务的货物后前往配送的时候,顺路取了第二个货物。 然后发现如果不可以这样的话,那么原题就是一个 \(O(n^3+q^2)\) 算法就能过的题,和数据范围远远不搭配。 所以显然是允许的。根据这个数据范围,我们很容易想到状压每一个任务目前的状态:要么是还没有被接货,要么是在运送途...

weixin_30455023的博客 309

数学建模模型总结

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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

CodeM美团点评编程大赛初赛B轮 B.送外卖2 三进制状压DP

[编程题] 送外卖2时间限制:1秒空间限制:32768K 美团外卖日订单数已经超过1200万,实时调度系统是背后的重要技术支撑,其中涉及很多复杂的算法。下面的题目是某类场景的抽象。一张 n 个点 m 条有向边的图上,有 q 个配送需求,需求的描述形式为( s_i , t_i , l_i , r_i ),即需要从点 s_i 送到 t_i, 在时刻 l_i 之后(包括 l_i)可以在 s_i 领取货物

I good vegetable a! 1348

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

CodeM美团点评编程大赛初赛B轮 B.送外卖2【三进制状压Dp】

[编程题]送外卖2 热度指数:107时间限制:1秒空间限制:32768K算法知识视频讲解 美团外卖日订单数已经超过1200万,实时调度系统是背后的重要技术支撑,其中涉及很多复杂的算法。下面的题目是某类场景的抽象。 一张 n 个点 m 条有向边的图上,有 q 个配送需求,需求的描述形式为( s_i , t_i , l_i , r_i ),即需要从点 s_i送到 t_i, 在

mengxiang000000 1443

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

#6177. 「美团 CodeM 初赛 Round B」送外卖2(floyed + 三进制枚举 )

题目大意: 一张个点条有向边的图上,有个配送需求,需求的描述形式为,即需要从点送到, 在时刻之后(包括)可以在领取货物,需要在时刻之前(包括)送达,每个任务只需完成一次。 图上的每一条边均有边权,权值代表通过这条边消耗的时间。在时刻有一个工作人员在点上,求他最多能完成多少个配送任务。 在整个过程中,可以认为领货跟交货都是不消耗时间...

diaomeijiao3430的博客 383

codeMB轮 送外卖

http://blog.youkuaiyun.com/mengxiang000000/article/details/74078663 [编程题]送外卖2 热度指数:107时间限制:1秒空间限制:32768K算法知识视频讲解 美团外卖日订单数已经超过1200万,实时调度系统是背后的重要技术支撑,其中涉及很多复杂的算法。下面的题目是某类场景的抽象。 一张 n 个点 m 条

MrMrs的专栏 361

【DP计划】10.27——[LOJ]「美团 CodeM 初赛 Round B」送外卖2(三进制状压) MEDIUM

题目描述 一张 nnn个点 mmm 条有向边的图上,有 qqq 个配送需求,需求的描述形式为(si,ti,li,ri)( s_i , t_i , l_i , r_i )(si​,ti​,li​,ri​),即需要从点 sis_isi​​ 送到 tit_iti​​​, 在时刻 lil_ili​​​ 之后(包括 lil_ili​​​ )可以在 sis_isi​​​ 领取货物,需要在时刻 rir_iri​...

stevensonson的博客 483

HDU3001 送外卖(三进制状压DP)

problem After coding so many days,Mr Acmer wants to have a good rest.So travelling is the best choice!He has decided to visit n cities(he insists on seeing all the cities!And he does not mind which c...

Feynman1999的博客 310

(状压dp/floyd)LibreOJ6177送外卖2

题目: 一张 n 个点 m条有向边的图上,有 q个配送需求,需求的描述形式为 (si,ti,li,ri),即需要从点 si送到 ti, 在时刻 li之后(包括 li )可以在 si领取货物,需要在时刻 ri之前(包括 ri)送达 ti,每个任务只需完成一次。 图上的每一条边均有边权,权值代表通过这条边消耗的时间。在时刻 0 有一个工作人员在点 1上,求他最多能完成多少个配送任务。 在整个过程...

k117777_01的博客 442

【loj6177】「美团 CodeM 初赛 Round B」送外卖2 Floyd+状压dp

题目描述 一张$n$个点$m$条边的有向图,通过每条边需要消耗时间,初始为$0$时刻,可以在某个点停留。有$q$个任务,每个任务要求在$l_i$或以后时刻到$s_i$接受任务,并在$r_i$或以前时刻到$t_i$完成任务。同一时刻可以接受多个任务。问:最多能完成多少任务。 输入 第一行,三个正整数$n$、$m$、$q$; 接下来$m$行,每行三个正整数$u_i$、$v_i$、$c...

weixin_30526593的博客 199

[状压DP]LibreOJ #6177. 「美团 CodeM 初赛 Round B」送外卖2 题解

(传送门)题目大意已知一个有n个节点m条边的有向图,给出k个任务,每个任务从Li开始,到Ri结束,要求在Si接收货物并且在时间结束前Ti送达。(领货和交货不需要消耗时间),问最多能做多少个任务(注意,可以有多个货物在手上)。解题分析考虑到这题的k比较小,可以DFS或者是状压DP,DFS没什么好想法,那么开始思考状压DP。如果求最多能完成几个任务有点烦,可以将货物情况进行状压,由于每个货物可能未送达,

Wflower的Blog //What are you waiting for? 514

【TEST】美团 CodeM 初赛 Round 1 || 2

写在最前面 这是今天的考试,一场比较水的考试,但是也不知为什么,就是爆炸了…… orz sillyf大佬,随随便便切掉了t3,然后就轻描淡写的说:“t3不就是一道很水的状压DP嘛?” QAQ…… t1:#【LOJ】6162 「美团 CodeM 初赛 Round A」身体训练 模拟 虽然这题是一道暴力就过的水题,但是为了讲的更清楚一点,定义f[i][j]f[i][j]表示第ii个人

Chester King 337

2017CodeM初赛B场

A、合并字符串价值(loj6174) 分析: 普通暴力:枚举两个分界线,那么ans=Σmin(Al(c)+Bl(c),Ar(c)+Br(c)),这样是O(n^2),会TLE 考虑枚举a的分界线,b的答案根据之前的答案进行转移 显然,4个字母A G C T可以单独考虑 假设当前a分界线下,a的左部分该字母有p个,右部分该字母有q个(p,q显然为已知数) 我们来考察b分界线,假设b分界线左...

weixin_30847271的博客 147
上一篇: 最小总代价(状压dp)
下一篇: 最大流算法总结
郭晋龙
博客等级 码龄6年 940粉丝 449原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭晋龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值