思维题选记

洛谷 P1146 硬币翻转

首先,有一个关于硬币翻转的性质,就是一个硬币只有翻转奇数次才能反面朝上,这是显然的。这启发我们构造一种能使每个硬币翻转奇数次的方案。

同时,我们发现对完全相同的一组 n1 个硬币执行两次及以上的操作是没有意义的,因为执行奇数次的话,就相当于 1 次。偶数次的话就相当于什么都没有做。所以说方案数最大就是 n 次,因为不同的操作序列只有 n 个。

有了以上两个性质,我们便可以构造如下方案:

i 次翻转除第 i 枚硬币以外的 n1 枚硬币,其中 1in

这样的方案中显然每一枚硬币都被翻转了 n1 次,由于 n 为偶数,所以符合性质一。这样操作次数共有 n 次,可以证明这是最小的方案数,同时也符合了性质二。这样的方案也是字典序最小的方案,所以这就是正确的解法。

NOIP2000 提高组 进制转换

十进制数转负进制,同样可以使用短除取余法,但是会出现余数为负的情况,例如 11÷2=5 1,此时我们可以用如下法方解决此问题:

我们设被除数为 a,除数为 b,余数为 c,商为 d,其中 c<0b<0

由除法的定义可知 a=b×d+c,所以有 a=b×(d+1)+cb,由于余数小于被除数,所以有 c<b,又因为 c<0b<0,所以新的余数 cb>0

所以我们只需要将商加 1,余数减除数,即可解决余数为负的情况。

洛谷 P2192 HXY玩卡片

如果一个数能被 90 整除,那么它一定能被 910 整除。

  • 能被 10 整除,那就说面答案的个位数一定是 0,如果没有 0 的话就是无解。
  • 能被 9 整除,那就说明答案的各个位加起来的和能被 9 整除,由于答案仅有 05 组成,所以只需要判断所有 5 加起来能否被 9 整除即可。也就是说,如果有 x5,那么需要保证 5x9 的倍数,所以有 x9

有了上面的推导,我们便有了解法:

设一共有 x5,因为要满足 x9,所以我们最多只能选 x9×95。因为要求最大,所以把这些 5 先输出,最后输出有的所有 0。但是有可能没有足够的 5,这样就只能输出 0 了,当然是在有 0 的情况下。

NOIP1998 提高组 拼数

  • X 为数字 x 的字符串形式。
  • A+B 表示字符串 A 和字符串 B 相连组成的字符串。

既然要构造最优解,显然如果有不优的情况的话,就需要对序列进行调整,具体而言我们可以这样做:

如果有 Ai+1+Ai>Ai+Ai+1,其中 1i<n,那么就交换 Ai+1Ai,现在 A 的字典序明显更大了。重复上述操作,直至没有满足上述条件的情况了。

为什么上述做法是对的呢?我们可以考虑用反证法进行证明:

经过上述操作后,设最终序列为 T1Tn,且序列 T 满足 Ti+Ti+1>Ti+1+Ti,其中 1i<n。我们先假设命题不成立,则序列 T 不是字典序最大的序列,而 S 是字典序最大的序列,那么 S 必然有与 T 不同的地方,则必然有 Si+1+Si>Si+Si+1,此时如果交换 SiSi+1,则必然有更大的字典序,与假设矛盾,故命题成立。

洛谷 P9484 「LAOI-1」GCD

命题 1:当 xy 不连边时时,xy 的最短路径中一定有一条只经过一个中转点的路径。

命题 2:在所有 xzy 的路径中,z=gcd(x,y) 时的路径是最短的。

考虑先证明命题 2

首先,可以推导出条件 gcd(i,j)=i,lcm=j 等价于 ij,也就是说 z 一定是 xy 的一个公倍数/因数,

  • z 为公倍数时,设 z=k×xxz 的长度 dzx=(k1)×x,由于 k>1,所以此时 dx。而 z=gcd(x,y) 时,xz 的长度为 xgcd(x,y),显然有 d>xgcd(x,y)。同理 zy 也是不优的,故这种情况是不优的。

  • z 为公因数时,且 z<gcd(x,y),此时的总长度 d=x+y2×z,所以 d>x+y2×gcd(x,y),故这种情况也是不优的。

有了上面的推论,命题 2 得证。

接下来证明命题 1

iji>j,有 k 满足 ikjg=gcd(i,j),由命题 2 得此时的最短路径 d=i+j2×g

对于命题 1,如果有 ijd,即 ikj 可以变成 ij,那么命题 1 就是对的。

考虑证明 ijd

iji+j2×g

2×j2×g

gj

由于 gcd(i,j)j 成立,所以有 ijd,故命题 1 得证。

有了命题 1 和命题 2,易得答案为 x+y2×gcd(x,y)

洛谷 P2651 添加括号III

为了使最终的结果是一个整数,所以分母要尽可能大,容易发现 a1 一定是分子,a2 一定是分母,那么最好就是让 a3an 全都变成分子,构造方式如下:

a1/(a2/a3//an)=a1×a3×a4××ana2

所以只需要将每一个 ai (i2)a2 进行约分,即使 a2/gcd(a2,ai),最后看 a2 是否为 1 即可。

蓝桥杯 2013 省 B 翻硬币

首先可知相邻的两个硬币最多只会翻转一次,否则就没有意义,又因为题目保证了没有无解的情况,所以只要出现一个不同的位置,直接翻转即可,这样一定是最优解。

洛谷 P9586 「MXOI Round 2」游戏

在第一回合,小 C 可以直接出干掉小 D,即 c1>d2c3>d1 的时候, 如果干不掉,那么

posted @   zhuluoan  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示