ARC148E ≥ K(组合)
问序列 \(a\) 有多少种排列没有相邻两个数 \(< K\)。模 \(998244353\)。
每场 ARC 必带的送分序列题 E。
大于 \(K\) 的数变成 \(K\)。
把 \(a\) 按 \(K, 0, K - 1, 1, K - 2, 2, ...\) 的顺序排序。
设 \(2a_i \ge K\) 的数叫 A 数,否则是 B 数。
每放一个 A 或 B 数,都不能放在之前放了的 B 数旁边,只能放在两个 A 数中间。这个地方比较巧妙但是这东西实在是基础了我不好说。
于是维护一个当前可以放的位置个数 \(= 1\),遇到 A \(+ 1\) 遇到 B \(-1\) 每次变化之前乘起来即可。

浙公网安备 33010602011771号