第 4 场 小白入门赛
A. 美丽的2024
思路:
- 直接运用
__builtin_popcount()
这个库函数可以直接得到一个十进制数转2
进制中1
的个数
时间复杂度:\(O(logn)\)
1 | signed main() { |
B. 自助餐
思路:
- 打表即可
时间复杂度:\(O(n)\)
1 | signed main() { |
C. 玩游戏
思路:
A
的必胜态为石子个数为奇数的情况B
的必胜态为石子个数为偶数的情况- 无论怎么分,只要石子的个数为奇数,那么
A
一定可以拿到最后一个,反之,偶数的情况,B
一定可以拿最后一个
时间复杂度:\(O(1)\)
1 | signed main() { |
D. 乘飞机
思路:
- 只要在
[l, r]
这个区间中,那么一定最多只会出现100
个数相差大于365
,只要这100
个数以外的其他数,一定是满足条件的 - 所以暴力枚举即可
1 | def check(ages, l, r): |