2021牛客暑期多校训练营9 J题: Jam

博客介绍了如何通过图论和匹配理论解决一个交通信号灯优化问题,以解决十字路口的拥堵状况。在考虑直行、左转和右转车辆流量的基础上,提出了将问题转化为寻找最大匹配的策略,并通过调整信号灯配时来最小化所有车辆通过的时间。文章探讨了如何处理右转车辆,并提供了相应的算法实现,包括枚举红色边权重和计算最优匹配的方法。
摘要由CSDN通过智能技术生成

J题: Jam

题目大意

(图片均摘自原题)
你需要控制十字路口的信号灯。下图展示了右侧交通(RHT,即驾驶员保持在道路右侧)中十字路口的典型。在不考虑掉头的情况下,共有12种方向:N → \rightarrow E、N → \rightarrow S、N → \rightarrow W、E → \rightarrow S、E → \rightarrow W、E → \rightarrow N、S → \rightarrow W、S → \rightarrow N、S → \rightarrow E、W → \rightarrow N、W → \rightarrow E 和 W → \rightarrow S。
在这里插入图片描述
现在已经发生了堵车,12个方向上行驶的汽车数量已知,每辆车需要1秒通过十字路口,假设一辆汽车通过十字路口后不再出现,也不会出现新的汽车。

现在需要为每秒分配一个合适的交通信号灯,以尽快解决拥堵(所有汽车成功通过十字路口)。且确保汽车间不会发生碰撞。下图显示一个合法的方案:
在这里插入图片描述
下图是一个非法方案,图中两个标记处可能发生碰撞。但允许两辆车同时进入一条道路。
在这里插入图片描述
求让所有车都通过十字路口所需的最少时间。
每条车道最多有100辆车。

题解

貌似个人向严重,容易出现阅读困难,有问题就发评论区吧,我尽力回复(虽然可能还是说不明白)

因为右转不会对其他车道造成影响,我们先将其分离,只考虑直走和左转。
我们可以建立一张一般图,每个点表示一种通行方式( a a a 表示直走, b b b 表示左转, 1 1 1 ~ 4 4 4 表示N,E,S,W),若两种通行方式可以同时进行,我们在其间连一条边,将问题转化为一个求匹配的问题(目的是使得最终每个点的点权减去其相邻的所有边的边权和为非正数)。
初步建图如下:
在这里插入图片描述
整理如下:
在这里插入图片描述
显然,其中黄色的边构成了两个环,若我们已知每个点的当前点权(先减去红色边权),则可以 O ( 1 ) O(1) O(1) 求出黄色边的最优匹配(匹配方式在"题解"部分末尾)。

那么我们考虑对红色边进行枚举边权值,若直接枚举每条边则复杂度为 1 0 8 10^8 10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值