也许是最后的,拥抱热爱。
107 NOI2018 冒泡排序
首先打表得出结论:好排列的充要条件是最长下降子序列长度 。
比如没有字典序限制,纵坐标是当前填的最大值,横坐标是当前填了几个数,发现转移是类似于下面的一个过程:
向上是填写一个比当前最大值大的值,横着走是填写一个最小值。只有这样是合法的。
发现这个写着向上走可以对应到唯一的向上走一段再往右走一格。
然后枚举前缀随便算一下。
108 ARC172E Last 9 Digits
发现其结构可以拆开:,然后预处理后七位,枚举前两位即可。
109 CF1969F Card Pairing
感觉很牛啊。
由于我们必定在有两个相同的时候删,所以犹豫的只能是 均出现的时候,将其成为坏状态,否则是好状态。设 代表钦定取完 时是一个坏状态,然后从 开始扫到 ,考虑什么时候出现坏状态。
我们先假装此时不会打出去任何的牌,只有当目前出现偶数次的牌有两张的时候,这才能是一个坏状态。此时可以转移到 。注意一个偶数对只能够出现一次,以后的贡献需要留给之后 的转移再计算(因为这期间会出现其它坏状态)。
统计一个 会对答案造成的贡献。数对有双奇数、一奇一偶和双偶数,分别会对答案造成 的贡献(就是某一个坏状态是否会对答案造成贡献)。