[每日 C] Light Switches
前言#
虽然说看过题解的
但是我没看懂啊
开了一个之前的时间胶囊, 其中
不过至少可以在学校控制自己
然后就是物理隔断很有用, 不知道怎么物理隔断
思路#
首先考虑一盏灯被点亮的区间, 不难发现形如
问题转化为
, 是否存在一个点 , 使得所有区间包含
不难发现对于所有
首先考虑什么情况之下无解
不难发现当
但是如果你朴素做法, 判无解都超时
一如既往的润去看了
模拟几组样例, 不难发现只有
根据
仅仅这样还不够, 你稍微分析可以发现答案一定在
具体一点, 你发现出了这个区间后面的都是循环的, 不考虑
所以现在, 问题转化为, 求
不难发现可以用差分处理, 假设当前的答案为
总结一下, 首先注意到可以放缩
放缩完之后, 用差分快速处理覆盖, 随后
简单对应到原序列即可
更一般的, 你注意到事实上所有
进行一个复习
给定一组
求最小的
- 定义合法情况, 要求输出一组合法情况 / 合法情况的最值问题 / 求方案数
- 列出合法情况需要满足的表达式, 在原序列中贪心选择最优情况
- 构造: 先推性质, 不行打表
- 找到不合法情况在什么时候出现, 通过对不合法情况的转化构造最优的合法情况
- 先找到一组合法解, 然后在基础上进行调整
- 找到所有情况统一的构造方案
- 循环 / 同余类问题一般可以找到类似循环节的东西
不难发现如果存在, 一定会在
想到枚举区间中的点, 转化成判定性问题
但是至少要
考虑点
考虑快速维护
如果能够维护每个
之前的做法多半是神经
总结#
循环类问题一定要将考虑范围缩小, 一般使用取余等方法
注意最后答案一定要映射回原串
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】