【杂题乱写】Codeforces EduRound153
A
如果有 那么肯定是不合法的
有两种很简单的构造,()()()()...()
和 ((((...))))
,如果一个串是第一种构造的子串那么一定不是第二种构造的子串,反之亦然。
使用 python 取之
B
把 的余数补齐,再把多出来的 价格 regular coins 个一组f
使用 python 取之
C
使用 SG 函数取之,注意到 而且你也只关注每个位置 函数是不是零,所以记录前缀 SG 信息即可。
注意 前缀最小值不能作为答案
D
设 表示只考虑交换后的前 个字符,其中有 个 , subsequence 有 个
转移枚举 最终结果串 在第 个位置是 还是 ,前者使状态中 ,后者使状态中
如果这个位置不是 且被钦定成了 就要 。
比赛的时候注意到了这么个性质:交换 可以让 对子增加区间长度 -1 个,先编了一个贪心 WA 了,又编了一个 dp,但是没写。和 std 也不一样。
E
变成 个节点的最短路,注意到第三类边形成若干团,于是建立虚点,现在图上边数变成 , bfs 可以实现 的复杂度
一条路径如果不经过虚点则容易计算答案,否则可以预处理 的最短路,枚举 统计答案,最终复杂度
F
观察一下 ,你是不是觉得这和向量点积没什么区别?在 保持一样的情况下,区别点积大小的方式是投影线段长度
考虑两个向量 的点积顺序,只有 的连线垂线满足以该直线上点为终点的向量与 点积相同
那么可以 计算出来任意两个向量的分界线。那么可以枚举所有可能的顺序,每种顺序可以通过前缀和来判断是否合法。
每次交换的括号后对前缀和的影响是一个区间加 ,可以使用数据结构维护之。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通