专栏文章

题解:P1431 找出伪币

P1431题解参与者 3已保存评论 2

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
2 条
当前快照
1 份
快照标识符
@mipoor18
此快照首次捕获于
2025/12/03 15:26
3 个月前
此快照最后确认于
2025/12/03 15:26
3 个月前
查看原文

P1431 题解

这题算是比较水的紫题。
显然,此题需要分类讨论。
p0p \neq 0 时:
此时我们猜测答案为 log2n⌈ \log_2 n ⌉。但我们发现,天平不一定一次只能称量两份。我们可以剩余一份出来。假设现在要判定的硬币数为 33 的倍数,假币比真币重。
令天盘左盘所有的硬币为 {ln}\{l_n\},右盘为 {rn}\{r_n\},剩下的为 {mn}\{m_n\} 。具体的方法如下:
如果比较之后得到左盘比右盘重,则右盘中有假币;若右盘比左盘重,则左盘中有假币;若两盘一样重,则剩余硬币中有假币。
所以对于 p0p \neq 0 时,答案为 log3n⌈ \log_3 n ⌉

p=0p = 0 时,考虑正难则反。
首先我们知道,称 22 次可以解决 33 枚硬币的问题。只需要将左边换一枚即可得到假币和假币与真币的关系。
同理,我们可以手算出 33 次可以解决 1212 枚,44 次可以解决 3939 枚。所以称 xx 次可以得到 i=1x13i=3x3\sum_{i=1}^{x-1} 3^i = 3^x - 3 枚(这个式子不会推导建议重学初中知识)。从而得到,称 kk 枚需要 log3(2n+3)⌈ \log_3 (2n+3) ⌉ 次。
代码就不放了,太卡常不好。

评论

2 条评论,欢迎与作者交流。

正在加载评论...