CF2081A.Math Division

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

Ecrade 有一个整数 xx。他将以长度为 nn 的二进制数的形式向你展示这个数。

存在两种操作:

  1. 将 xx 替换为 ⌊x2⌋\left\lfloor \frac{x}{2}\right\rfloor,其中 ⌊x2⌋\left\lfloor \frac{x}{2}\right\rfloor 是小于等于 x2\frac{x}{2} 的最大整数。
  2. 将 xx 替换为 ⌈x2⌉\left\lceil \frac{x}{2}\right\rceil,其中 ⌈x2⌉\left\lceil \frac{x}{2}\right\rceil 是大于等于 x2\frac{x}{2} 的最小整数。

Ecrade 将执行若干次操作直到 xx 变为 11。每次操作时,他会独立地以 12\frac{1}{2} 的概率选择执行第一种操作或第二种操作。

Ecrade 想知道他将执行的操作次数的期望值(模 109+710^9 + 7)。由于问题有一定难度,请你帮助他!

输入格式

第一行输入一个整数 tt(1≤t≤1051 \le t \le 10^5)——测试用例数量。接下来描述每个测试用例。

每个测试用例的第一行包含一个整数 nn(1≤n≤1051 \le n \le 10^5)——xx 的二进制表示长度。

每个测试用例的第二行包含一个长度为 nn 的二进制字符串:表示 xx 的二进制形式,从最高有效位到最低有效位给出。保证 xx 的最高有效位为 11。

保证所有测试用例的 nn 总和不超过 10510^5。

输出格式

对于每个测试用例,输出一个整数表示 Ecrade 将执行的操作次数的期望值(模 109+710^9 + 7)。

形式化地,令 M=109+7M = 10^9 + 7。可以证明精确答案可以表示为不可约分数 pq\dfrac{p}{q},其中 pp 和 qq 为整数且 q≢0(modM)q \not \equiv 0 \pmod{M}。请输出 p⋅q−1 mod Mp \cdot q^{-1} \bmod M。换句话说,输出满足 0≤x<M0 \le x < M 且 x⋅q≡p(modM)x \cdot q \equiv p \pmod{M} 的整数 xx。

输入输出样例

  • 输入#1

    3
    3
    110
    3
    100
    10
    1101001011

    输出#1

    500000006
    2
    193359386

说明/提示

为简化描述,我们将第一种操作称为 OPER 1\text{OPER 1},第二种操作称为 OPER 2\text{OPER 2}。

第一个测试用例中,x=6x=6,存在六种可能的操作序列:

  • 6→OPER 13→OPER 116 \xrightarrow{\text{OPER 1}} 3 \xrightarrow{\text{OPER 1}} 1,概率为 14\dfrac{1}{4}。
  • 6→OPER 13→OPER 22→OPER 116 \xrightarrow{\text{OPER 1}} 3 \xrightarrow{\text{OPER 2}} 2 \xrightarrow{\text{OPER 1}} 1,概率为 18\dfrac{1}{8}。
  • 6→OPER 13→OPER 22→OPER 216 \xrightarrow{\text{OPER 1}} 3 \xrightarrow{\text{OPER 2}} 2 \xrightarrow{\text{OPER 2}} 1,概率为 18\dfrac{1}{8}。
  • 6→OPER 23→OPER 116 \xrightarrow{\text{OPER 2}} 3 \xrightarrow{\text{OPER 1}} 1,概率为 14\dfrac{1}{4}。
  • 6→OPER 23→OPER 22→OPER 116 \xrightarrow{\text{OPER 2}} 3 \xrightarrow{\text{OPER 2}} 2 \xrightarrow{\text{OPER 1}} 1,概率为 18\dfrac{1}{8}。
  • 6→OPER 23→OPER 22→OPER 216 \xrightarrow{\text{OPER 2}} 3 \xrightarrow{\text{OPER 2}} 2 \xrightarrow{\text{OPER 2}} 1,概率为 18\dfrac{1}{8}。

因此,操作次数的期望为 2⋅14+3⋅18+3⋅18+2⋅14+3⋅18+3⋅18=52≡500 000 006(mod109+7)2 \cdot \dfrac{1}{4} + 3 \cdot \dfrac{1}{8} + 3 \cdot \dfrac{1}{8} + 2 \cdot \dfrac{1}{4} + 3 \cdot \dfrac{1}{8} + 3 \cdot \dfrac{1}{8} = \dfrac{5}{2} \equiv 500\,000\,006 \pmod{10^9 + 7}。

翻译由 DeepSeek R1 完成

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

首页