MENU

洛谷P2431 正妹吃月饼

洛谷P2431

不是很懂题解怎么都写那么长的

因为都是$2$的幂次方,所以只看最后吃的重量二进制下有几个$1$即可,尝试把当前数最低位变成$1$看有没有超范围。

#include<iostream>
long long a, b;
int ans;
int main() {
    std::cin >> a >> b;
    while ((a | a + 1) <= b) a |= a + 1;
    while (a)ans += a & 1, a >>= 1;
    std::cout << ans;
}
Leave a Comment

captcha
请输入验证码