AT_abc356_d.[ABC356D] Masked Popcount

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给你 22 个整数 NN 和 MM,请你求出 ∑k=0Npopcount⁡(kand⁡M)\sum\limits_{k=0}^N \operatorname{popcount}(k \operatorname{and}M) 对 998244353998244353 取模后的值。

其中,and⁡\operatorname{and} 表示按位与运算,popcount⁡(x)\operatorname{popcount}(x) 表示 xx 的二进制表示中 11 的个数(比如 13=1101(2)13=1101_{(2)},所以 popcount⁡(13)=3\operatorname{popcount}(13)=3)。

输入格式

输入一行两个整数 NN 和 MM。

输出格式

输出答案,结果对 998244353998244353 取模。

输入输出样例

  • 输入#1

    4 3

    输出#1

    4
  • 输入#2

    0 0

    输出#2

    0
  • 输入#3

    1152921504606846975 1152921504606846975

    输出#3

    499791890

说明/提示

数据范围

0≤N,M≤260−10\le N,M\le 2^{60}-1。

样例解释 1

  • $ \operatorname{popcount} (0\operatorname{and}3)=0 $
  • $ \operatorname{popcount} (1\operatorname{and}3)=1 $
  • $ \operatorname{popcount} (2\operatorname{and}3)=1 $
  • $ \operatorname{popcount} (3\operatorname{and}3)=2 $
  • $ \operatorname{popcount} (4\operatorname{and}3)=0 $

这些值的总和为 44。

样例解释 2

可能出现 N=0N=0 或 M=0M=0 的情况。

样例解释 3

请注意答案对 998244353998244353 取模。

输入解题思路,AI测评打分。不知道怎么写?

首页