howD?
  • 板块学术版
  • 楼主milk1234
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/6/1 21:48
  • 上次更新2024/6/2 08:32:47
查看原帖
howD?
774110
milk1234楼主2024/6/1 21:48
#include <iostream>
using namespace std;
const unsigned long long mod = 998244353;
int BitCount5(unsigned long long n)
{
    unsigned long long tmp = n - ((n >>1) &033333333333) - ((n >>2) &011111111111);
    return ((tmp + (tmp >>3)) &030707070707) %63;
}
int main() {
    unsigned long long n, m;
    cin >> n >> m;
    unsigned long long ans = 0;
    for (unsigned long long i = 0; i <= n; i++) {
        ans += BitCount5(i & m);
    }
    cout << ans % mod;
    return 0;
}

2024/6/1 21:48
加载中...