思维题选记
洛谷 P1146 硬币翻转
首先,有一个关于硬币翻转的性质,就是一个硬币只有翻转奇数次才能反面朝上,这是显然的。这启发我们构造一种能使每个硬币翻转奇数次的方案。
同时,我们发现对完全相同的一组 \(n-1\) 个硬币执行两次及以上的操作是没有意义的,因为执行奇数次的话,就相当于 \(1\) 次。偶数次的话就相当于什么都没有做。所以说方案数最大就是 \(n\) 次,因为不同的操作序列只有 \(n\) 个。
有了以上两个性质,我们便可以构造如下方案:
第 \(i\) 次翻转除第 \(i\) 枚硬币以外的 \(n-1\) 枚硬币,其中 \(1 \leq i \leq n\)。
这样的方案中显然每一枚硬币都被翻转了 \(n-1\) 次,由于 \(n\) 为偶数,所以符合性质一。这样操作次数共有 \(n\) 次,可以证明这是最小的方案数,同时也符合了性质二。这样的方案也是字典序最小的方案,所以这就是正确的解法。
NOIP2000 提高组 进制转换
十进制数转负进制,同样可以使用短除取余法,但是会出现余数为负的情况,例如 \(-11 \div -2 = 5 ~\cdots \cdots -1\),此时我们可以用如下法方解决此问题:
我们设被除数为 \(a\),除数为 \(b\),余数为 \(c\),商为 \(d\),其中 \(c<0\) 且 \(b<0\)。
由除法的定义可知 \(a=b \times d +c\),所以有 \(a=b \times (d+1)+c-b\),由于余数小于被除数,所以有 \(c \lt b\),又因为 \(c<0\) 且 \(b<0\),所以新的余数 \(c-b > 0\)。
所以我们只需要将商加 \(1\),余数减除数,即可解决余数为负的情况。
洛谷 P2192 HXY玩卡片
如果一个数能被 \(90\) 整除,那么它一定能被 \(9\) 和 \(10\) 整除。
- 能被 \(10\) 整除,那就说面答案的个位数一定是 \(0\),如果没有 \(0\) 的话就是无解。
- 能被 \(9\) 整除,那就说明答案的各个位加起来的和能被 \(9\) 整除,由于答案仅有 \(0\) 和 \(5\) 组成,所以只需要判断所有 \(5\) 加起来能否被 \(9\) 整除即可。也就是说,如果有 \(x\) 个 \(5\),那么需要保证 \(5 \cdot x\) 是 \(9\) 的倍数,所以有 \(x \mid 9\)。
有了上面的推导,我们便有了解法:
设一共有 \(x\) 个 \(5\),因为要满足 \(x \mid 9\),所以我们最多只能选 \(\lfloor \frac{x}{9} \rfloor \times 9\) 个 \(5\)。因为要求最大,所以把这些 \(5\) 先输出,最后输出有的所有 \(0\)。但是有可能没有足够的 \(5\),这样就只能输出 \(0\) 了,当然是在有 \(0\) 的情况下。
NOIP1998 提高组 拼数
- 设 \(X\) 为数字 \(x\) 的字符串形式。
- \(A+B\) 表示字符串 \(A\) 和字符串 \(B\) 相连组成的字符串。
既然要构造最优解,显然如果有不优的情况的话,就需要对序列进行调整,具体而言我们可以这样做:
如果有 \(A_{i+1}+A_i>A_i+A_{i+1}\),其中 \(1 \leq i \lt n\),那么就交换 \(A_{i+1}\) 和 \(A_i\),现在 \(A\) 的字典序明显更大了。重复上述操作,直至没有满足上述条件的情况了。
为什么上述做法是对的呢?我们可以考虑用反证法进行证明:
经过上述操作后,设最终序列为 \(T_1 \dots T_n\),且序列 \(T\) 满足 \(T_{i}+T_{i+1} > T_{i+1}+T_i\),其中 \(1 \leq i \lt n\)。我们先假设命题不成立,则序列 \(T\) 不是字典序最大的序列,而 \(S\) 是字典序最大的序列,那么 \(S\) 必然有与 \(T\) 不同的地方,则必然有 \(S_{i+1}+S_i>S_i+S_{i+1}\),此时如果交换 \(S_i\) 和 \(S_{i+1}\),则必然有更大的字典序,与假设矛盾,故命题成立。
洛谷 P9484 「LAOI-1」GCD
命题 \(1\):当 \(x\) 和 \(y\) 不连边时时,\(x\) 到 \(y\) 的最短路径中一定有一条只经过一个中转点的路径。
命题 \(2\):在所有 \(x \rightarrow z \rightarrow y\) 的路径中,\(z=\gcd(x,y)\) 时的路径是最短的。
考虑先证明命题 \(2\):
首先,可以推导出条件 \(\gcd(i,j)=i,\operatorname{lcm}=j\) 等价于 \(i \mid j\),也就是说 \(z\) 一定是 \(x\) 和 \(y\) 的一个公倍数/因数,
-
当 \(z\) 为公倍数时,设 \(z=k \times x\),\(x \rightarrow z\) 的长度 \(d\) 为 \(z-x=(k-1) \times x\),由于 \(k > 1\),所以此时 \(d \ge x\)。而 \(z=\gcd(x,y)\) 时,\(x \rightarrow z\) 的长度为 \(x-\gcd(x,y)\),显然有 \(d > x-\gcd(x,y)\)。同理 \(z \rightarrow y\) 也是不优的,故这种情况是不优的。
-
当 \(z\) 为公因数时,且 \(z < \gcd(x,y)\),此时的总长度 \(d=x+y-2\times z\),所以 \(d > x+y-2 \times \gcd(x,y)\),故这种情况也是不优的。
有了上面的推论,命题 \(2\) 得证。
接下来证明命题 \(1\):
设 \(i \mid j\),\(i>j\),有 \(k\) 满足 \(i \rightarrow k \rightarrow j\),\(g=\gcd(i,j)\),由命题 \(2\) 得此时的最短路径 \(d=i+j-2 \times g\)。
对于命题 \(1\),如果有 \(i-j \le d\),即 \(i \rightarrow k \rightarrow j\) 可以变成 \(i \rightarrow j\),那么命题 \(1\) 就是对的。
考虑证明 \(i-j \le d\):
由于 \(\gcd(i,j) \le j\) 成立,所以有 \(i-j \le d\),故命题 \(1\) 得证。
有了命题 \(1\) 和命题 \(2\),易得答案为 \(x+y-2 \times \gcd(x,y)\)
洛谷 P2651 添加括号III
为了使最终的结果是一个整数,所以分母要尽可能大,容易发现 \(a_1\) 一定是分子,\(a_2\) 一定是分母,那么最好就是让 \(a_3 \sim a_n\) 全都变成分子,构造方式如下:
\(a_1/(a_2/a_3/ \cdots /a_n)= \frac{a_1 \times a_3 \times a_4 \times \cdots \times a_n}{a_2}\)
所以只需要将每一个 \(a_i~(i \neq 2)\) 与 \(a_2\) 进行约分,即使 \(a_2/\gcd(a_2,a_i)\),最后看 \(a_2\) 是否为 \(1\) 即可。
蓝桥杯 2013 省 B 翻硬币
首先可知相邻的两个硬币最多只会翻转一次,否则就没有意义,又因为题目保证了没有无解的情况,所以只要出现一个不同的位置,直接翻转即可,这样一定是最优解。
洛谷 P9586 「MXOI Round 2」游戏
在第一回合,小 C 可以直接出杀或斩干掉小 D,即 \(c_1 > d_2\) 或 \(c_3 > d_1\) 的时候, 如果干不掉,那么

浙公网安备 33010602011771号