• 2024-09-26ARC184 A ~ D
    A注意到\(950=1000\times\dfrac{19}{20}\),考虑把序列按\(B=20\)分块。每次对于一块\([l,r]\),考虑把每个数和\(l\)问一遍,可以把\(B\)个数划分为两个集合。如果两个集合大小不同,那么其中大小较小的就是假币;否则所有假币都在某个集合中,再问一次即可确定哪个集合为假币。注
  • 2024-09-23题解:AT_arc184_a [ARC184A] Appraiser
    题意\(1000\)个硬币中有\(10\)个假币,你每次可以询问两个位置的硬币类型是否相同,你需要用不超过\(950\)次询问找出所有假币的位置。思路将前\(990\)个硬币每\(11\)个分一组,共\(90\)组,余\(10\)个单独分一组。询问每组第\(1\)个硬币和这组后面硬币的关系。因为只
  • 2024-09-23题解:AT_arc184_a [ARC184A] Appraiser
    本质上还是官方题解的分组并利用\(M\)不大的思路。询问次数\(Q\)离最简单的每个扫一遍就可以知道答案的做法少了\(50\)次。我们考虑如何减少这个次数。首先你可以发现一次询问可以覆盖到两个数,也就是说所有的数都被覆盖时只需要询问\(500\)次。我们考虑把不同的对拉出