【杂题乱写】Codeforces EduRound153

A

如果有 () 那么肯定是不合法的

有两种很简单的构造,()()()()...()((((...)))),如果一个串是第一种构造的子串那么一定不是第二种构造的子串,反之亦然。

使用 python 取之

B

m%k 的余数补齐,再把多出来的 1 价格 regular coins m个一组f

使用 python 取之

C

使用 SG 函数取之,注意到 mex({0})=1 而且你也只关注每个位置 SG 函数是不是零,所以记录前缀 SG 信息即可。

注意 arg 前缀最小值不能作为答案

D

fi,j,k 表示只考虑交换后的前 i 个字符,其中有 j001 subsequence 有 k

转移枚举 最终结果串 在第 i 个位置是 0 还是 1,前者使状态中 jj+1 ,后者使状态中 kj+k

如果这个位置不是 0 且被钦定成了 0 就要 +1

比赛的时候注意到了这么个性质:交换 10 可以让 01 对子增加区间长度 -1 个,先编了一个贪心 WA 了,又编了一个 dp,但是没写。和 std 也不一样。

E

变成 n1 个节点的最短路,注意到第三类边形成若干团,于是建立虚点,现在图上边数变成 n+|Σ|20/1 bfs 可以实现 Θ(qn) 的复杂度

一条路径如果不经过虚点则容易计算答案,否则可以预处理 s>image,image>t 的最短路,枚举 image 统计答案,最终复杂度 Θ(|Σ|2(|Σ|2+n+q)

F

观察一下 (a,b),(x,y),ax+by ,你是不是觉得这和向量点积没什么区别?在 (x,y) 保持一样的情况下,区别点积大小的方式是投影线段长度

考虑两个向量 x1=(a1,b1),x2=(a2,b2) 的点积顺序,只有 (a1,b1),(a2,b2) 的连线垂线满足以该直线上点为终点的向量与 x1,x2 点积相同

那么可以 Θ(n2) 计算出来任意两个向量的分界线。那么可以枚举所有可能的顺序,每种顺序可以通过前缀和来判断是否合法。

每次交换的括号后对前缀和的影响是一个区间加 ±1 ,可以使用数据结构维护之。

posted @   没学完四大礼包不改名  阅读(56)  评论(5编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示