P2657 [SCOI2009]windy数 题解
2021-03-07 19:32
标签:line display for 如何 memset getc operator sum while CSDN同步 原题链接 简要题意: 一个 相邻两个数字差的绝对值都 \(\geq 2\) 且不含前导零 的数 被称为 “ 首先,我们考虑 \(1\) ~ \(n\) 的 “ 用 \(f_{i,j}\) 表示有 \(i\) 位,最高位为 \(j\) 的方案数。 那么,从 \(i-1 \rightarrow i\) 只需要在 最高位前面拼上合法的一位。 即: \(k\) 即枚举合法的数字。 对于 \(i=1\) 的情况,\(f_{i,j} = 1\). 则: 如何求答案呢? 我们分为三类: 位数比 \(n\) 小的数。 位数和 \(n\) 一样,但最高位比 \(n\) 小的数。 位数和最高位都和 \(n\) 一样,但比 \(n\) 小的数。 第一部分,答案为 (\(len\) 为 \(x\) 的位数) 第二部分则枚举最高位即可。 第三部分有点复杂,只需要枚举位数和次高位即可。 时间复杂度:\(O(\operatorname{siz}^2{n})\). 实际得分:\(100pts\). P2657 [SCOI2009]windy数 题解 标签:line display for 如何 memset getc operator sum while 原文地址:https://www.cnblogs.com/bifanwen/p/12819052.htmlwindy
数”。问从 \(a\) 到 \(b\) 的 “windy
数”的个数。windy
数” 的个数怎么求。
#pragma GCC optimize(2)
#include