AT_arc066_b.[ABC050D] Xor Sum

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

给定一个正整数 NN。请计算有多少对整数 u,vu,v(0≤u,v≤N0 \leq u, v \leq N),满足存在非负整数 a,ba, b,使得 axor⁡b=ua \operatorname{xor} b = u,a+b=va + b = v。这里,xor⁡\operatorname{xor} 表示按位异或运算。由于答案可能非常大,请输出答案对 109+710^9+7 取模的结果。

输入格式

输入为一行,包含一个整数 NN。

输出格式

输出满足条件的 u,vu, v 的对数,对 109+710^9+7 取模后的结果。

输入输出样例

  • 输入#1

    3

    输出#1

    5
  • 输入#2

    1422

    输出#2

    52277
  • 输入#3

    1000000000000000000

    输出#3

    787014179

说明/提示

限制

  • 1≤N≤10181 \leq N \leq 10^{18}

样例解释 1

可能的 u,vu, v 对有以下 55 种情况:

  • u=0,v=0u=0, v=0(取 a=0,b=0a=0, b=0,则 0xor⁡0=00 \operatorname{xor} 0=0,0+0=00+0=0)
  • u=0,v=2u=0, v=2(取 a=1,b=1a=1, b=1,则 1xor⁡1=01 \operatorname{xor} 1=0,1+1=21+1=2)
  • u=1,v=1u=1, v=1(取 a=1,b=0a=1, b=0,则 1xor⁡0=11 \operatorname{xor} 0=1,1+0=11+0=1)
  • u=2,v=2u=2, v=2(取 a=2,b=0a=2, b=0,则 2xor⁡0=22 \operatorname{xor} 0=2,2+0=22+0=2)
  • u=3,v=3u=3, v=3(取 a=3,b=0a=3, b=0,则 3xor⁡0=33 \operatorname{xor} 0=3,3+0=33+0=3)

由 ChatGPT 4.1 翻译

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

首页