题解【[AGC002B] Box and Ball】
原题链接:Link
前言
AGC 的 B 题,我个人觉得这道题可能作为 AGC 的 B 题难度略低了。
看到上一篇题解可能在思维方面有一点没讲清楚,因此发一篇题解详解一下思路。
分析
由于是求红球可能在的盒子的总数,因此这里我们需要捋一捋思路,下面我借样例2详解一下。
第一组 \(x\) 与 \(y\) 是 \(1\) 和 \(2\),表示从一号盒子取出一个球到二号盒子,因为一号盒子此时只有一个红球,因此一号盒子可以确定没有红球,二号盒子在第一步结束的时候确定有红球。
第二组 \(x\) 与 \(y\) 是 \(2\) 和 \(3\),表示从二号盒子取出一个球到三号盒子,因为二号盒子此时只有一个红球与一个白球,拿到三号盒子的球可能是红球也可能是白球,所以我们无法确定第二步结束时红球在二号盒子还是三号盒子当中,因此第二步结束后二号盒子和三号盒子都有可能有红球。
第三组 \(x\) 与 \(y\) 是 \(2\) 和 \(3\),表示从二号盒子取出一个球到三号盒子,因为二号盒子此时只有一个球(当然我们无法确定是红球还是白球),拿到三号盒子后二号盒子便没有球了,自然也不存在有可能有红球的情况了。而此时全场的球都在三号盒子内,因此在第三步结束后只有三号盒子存在有红球的情况。
由上可以推出有 \(1\) 个盒子可能有红球。
思路
上面我们分析了样例,读到这里读者们应该都比较清楚过程了。
我们用数组 \(p\) 记录可能有红球的盒子,同时用数组 \(check\) 记录此盒子是否有球,当 \(check\) 等于 \(0\) 时就表示此盒子没有球了,因此也不存在有红球的情况,此时同位置的 \(p\) 就清零。
具体思路就是这样,读者在完全搞懂后实现应该不成问题,因此这边就不给代码了。
结尾
首先感谢管理员对我提出的题目上的一些小问题都做了修改,管理员辛苦了。
同时希望这篇题解对您有所帮助!
P.S:翻译有一个小地方没有讲清楚,其实每一个盒子都只有一个球,笔者在这里卡了一段时间,后来看英文题面才发现问题
浙公网安备 33010602011771号