- 大概就是考场思路,当时觉得细节太多没写完
考虑从后向前 出当前的合法长度,从前向后维护可能成为答案的串的集合,需要根据这个 判一下合法性,注意到若一个串不是另一个的前缀一定可以删除一个
串的集合是一个串和它的若干个前缀,用一个串和一个集合可以表示一个状态
考虑当前的串拼接进去,需要把不是前缀的串给筛掉,发现只需要求当前串串头和答案串每个位置的 ,用 解决
反思了一下为啥我的做法细节麻人,就是我插入串的时候要弹前面的,弹后面的
而题解求出了一个最小值(字典序相同长度大的小),所以只需要把集合中的点拿去更最小值比就可以快速更新,
- 考虑限制是不经过两条直线( 维空间),即 为第一次走到第一条直线不经过两条直线的方案数
为第二条,记总方案数为 表示从 走到 上,从 走到 ,以及从 走到 上,进行容斥,容易写成生成函数的形式:
答案是 的末项,注意其中 ,解出来多项式求逆即可,