抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

也许是最后的,拥抱热爱。

107 NOI2018 冒泡排序

首先打表得出结论:好排列的充要条件是最长下降子序列长度 2\le 2

比如没有字典序限制,纵坐标是当前填的最大值,横坐标是当前填了几个数,发现转移是类似于下面的一个过程:

向上是填写一个比当前最大值大的值,横着走是填写一个最小值。只有这样是合法的。

发现这个写着向上走可以对应到唯一的向上走一段再往右走一格。

然后枚举前缀随便算一下。

108 ARC172E Last 9 Digits

发现其结构可以拆开:(x+10y)x+10yxx(mod10y)(x+10^y)^{x+10^y}\equiv x^x \pmod {10^{y}},然后预处理后七位,枚举前两位即可。

109 CF1969F Card Pairing

感觉很牛啊。

由于我们必定在有两个相同的时候删,所以犹豫的只能是 1k1\sim k 均出现的时候,将其成为坏状态,否则是好状态。设 fif_i 代表钦定取完 ii 时是一个坏状态,然后从 ii 开始扫到 nn,考虑什么时候出现坏状态。

我们先假装此时不会打出去任何的牌,只有当目前出现偶数次的牌有两张的时候,这才能是一个坏状态。此时可以转移到 fjf_j。注意一个偶数对只能够出现一次,以后的贡献需要留给之后 jj 的转移再计算(因为这期间会出现其它坏状态)。

统计一个 fif_i 会对答案造成的贡献。数对有双奇数、一奇一偶和双偶数,分别会对答案造成 +1,0,1+1,0,-1 的贡献(就是某一个坏状态是否会对答案造成贡献)。

评论

若无法加载,请尝试刷新,欢迎讨论、交流和提出意见,支持 Markdown 与 LaTeX 语法(公式与文字间必须有空格)!