CF2004D Colored Portals 题解

背景

memset 害死人。

分析

首先注意到字母种类只有四个,那么很显然任意两个城市至多只需要一个城市中转就能互相到达。

然后不就可以乱写了么。

先把可以直接到达的判断掉,设当前两个城市为 xy,我们对 6 种字母组合分别存一下出现的位置,然后对 x 的两个字母分别去找到对应的字母组合,并在相应的数组里面二分找到第一个比 x 靠后的位置,最后计算即可。

需要注意的是,如果当前字母组合在 x 之后一次也没有出现过,我们就需要找到在 x 前面位置的再计算。

但是因为 x 可能从未出现过,这时候我们可以先对每一个数组先存上一个极小值防止卡死。

然后就做完了。

Code

提交记录

posted @   Redamancy_Lydic  阅读(181)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示