CF1023题解

CF1023A

一眼秒之题

因为整个s串至多有1个*号,所以可以把s串分为两个部分分别与t串的前后进行匹配,看看前后能不能适配即可

注意特判没有*的情况

CF1023B

一眼秒之题+1

简单的,就是一个数k拆成两个数之和,这两个数的值域为(1,n),分讨k为奇偶,然后简单转化即可

CF1023C

小清新一眼秒之题+1

左括号数在任何时候都不能少于右括号之数,在满足这个条件之下,贪心的能多选就多选就行

CF1023D

主要考察考虑的全面性

两种不可行情况:
1.无0,合法序列中也没有q
2.小的数被大的数夹在中间

三种填数方法:
1.优先填没有在序列中出现的数(从大到小填)
2.设x为此位置左右都出现过的数,再在空位上填 \(max\{x\}\)
3.最后都填1,因为1覆盖所有区间一定合法

如何找到 \(max\{x\}\),我们维护一个堆或set,然后一个元素第一次出现的时候加入进去,最后一次出现再给删除就行

posted @ 2024-11-18 11:43  daydreamer_zcxnb  阅读(28)  评论(0编辑  收藏  举报