牛客挑战赛 76

https://ac.nowcoder.com/acm/contest/88848#question

https://ac.nowcoder.com/discuss/1367191?type=101&order=0&pos=2&page=0&channel=-1&source_id=1


mgj 上次打牛客挑战赛也生着病,以后不打了(
食堂全是军训的害我迟到了 3min(

B 转化成作为子串和子序列都恰好出现一次,然后一直想上自动机。。。
D 以为下标也有区间限制做了半天。。。
一看剩下的全是数数,自闭了。C 可做但没时间了

B 一开始不会做,D 被卡常,罚时爆了,三题从 17 到 45,我 44。险些掉分,感觉上 2400/红名 还是比较困难的


B - Substring Not Subsequence

考虑一个必要条件:若子串 s[l:r] 合法,那么 l 之前一定没有字符 s[l]r 之后一定没有字符 s[r],否则可以调整成不连续的子序列

事实上这也是充分条件。这样的串最多有 262

C - 序列

key observation:类似括号序列,有且仅有一种 0011 的匹配方式,使得每次删掉的都是一个匹配

可以用栈求出匹配方式,问题变为求删空的排列数

任意排列有 n! 种方案。删 (ai,bi,ci,di) 需要先把中间删空,即排列中 i 是这 diai+14 个种的最后一个,答案需要除掉 diai+14

code

D - 数据结构

赛时做法

每次操作后区间内所有数同奇偶,考虑均摊

下标没有限制,直接按奇偶性分别维护有序数集

code

std

key observation:区间 1 后不改变相对大小。排序后始终可以把值域区间对应到序列区间

珂朵莉树维护只有奇/偶数的连续段

可以直接在线段树上维护
线段树二分定位区间 [l,r](需要维护最值),继续递归到只有奇/偶数的结点进行修改(需要维护奇/偶数个数,打 1 标记)
每次操作新增 O(logn) 个有奇有偶的结点。时间复杂度 O(qlogn)

E - 配对

d(u,v) 的组合意义:从链 u->v 上选择一条边的方案数

posted @   ft61  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示