依旧是没有体验感的一次 vp,被各位虐爆了,赛后发现 BC 都是傻逼题,于是我显的更傻逼了。
特别感谢赛后学妹的开导和鼓励。
A Fly
设 \(x,y,k\) 分别表示起飞/降落后的总重,起飞/降落前的总重,起飞系数。
满足 \(y - \frac{y}{k} = x\),解得 \(y = \frac{kx}{k-1}\)。然后倒着做即可。
B Rocket
发现给的次数刚好是 \(2 \log V\) 次,考虑到如果确定了 \(p\) 序列后,剩下的只需要二分即可。
一开始的思路是考虑利用第 \(i\) 次和第 \(n+i\) 次询问来确定 \(p_i\) 的值从而确定怎么二分。然而这个方向是很傻逼的,因为两次询问的间隔太长有些东西把握不了。
考虑一开始询问 \(n\) 次 \(1\) 的值,如果是 \(p_i=1\) 那么一定会返回 \(1\) ,否则返回 \(0\)。
然后就做完了。
C Border
本质是求 \(n\) 个数在模 \(k\) 意义下能有多少种取值方式。
考虑到任何一个可以组成的数一定是 \(g = \gcd (a_1,...,a_n, k)\) 的倍数。(正确性大概考虑的是 \(\text{exgcd}\))
然后枚举 \(i \times g \bmod k\) 就能确定可以去那些值,因为循环节是 \(k\),只需要枚举前 \(k\) 个。
然后就做完了。