CF1864H Asterism Stream
题目描述
Bogocubic 正在和 amenotiomoi 玩一个游戏。首先,Bogocubic 固定了一个整数 $n$,然后他给 amenotiomoi 一个整数 $x$,初始时 $x=1$。
每一步,amenotiomoi 以相同的概率执行以下两种操作之一:
- 将 $x$ 增加 $1$;
- 将 $x$ 乘以 $2$。
Bogocubic 想要知道,amenotiomoi 需要进行多少步操作,才能使 $x$ 大于等于 $n$ 的期望步数。请你帮他计算这个期望步数对 $998\,244\,353$ 取模的结果。
形式化地,设 $M=998\,244\,353$。可以证明答案可以表示为最简分数 $\frac{p}{q}$,其中 $p$ 和 $q$ 是整数且 $q \not\equiv 0 \pmod{M}$。请输出等于 $p \cdot q^{-1} \bmod M$ 的整数。换句话说,输出一个整数 $y$,满足 $0 \le y < M$ 且 $y \cdot q \equiv p \pmod{M}$。
输入格式
每组测试数据包含多个测试用例。第一行包含测试用例数 $t$($1 \le t \le 100$)。
接下来每个测试用例一行,包含一个整数 $n$($1 \le n \le 10^{18}$)。
输出格式
对于每个测试用例,输出一个整数,表示期望步数对 $998\,244\,353$ 取模的结果。
说明/提示
在第一个测试用例中,$n\le x$,无需任何操作,所以答案为 $0$。
在第二个测试用例中,对于 $n=4$,所有可能的操作序列及其概率如下:
- $1\stackrel{+1}{\longrightarrow}2\stackrel{+1}{\longrightarrow}3\stackrel{+1}{\longrightarrow}4$,概率为 $\frac{1}{8}$;
- $1\stackrel{\times 2}{\longrightarrow}2\stackrel{+1}{\longrightarrow}3\stackrel{+1}{\longrightarrow}4$,概率为 $\frac{1}{8}$;
- $1\stackrel{+1}{\longrightarrow}2\stackrel{+1}{\longrightarrow}3\stackrel{\times 2}{\longrightarrow}6$,概率为 $\frac{1}{8}$;
- $1\stackrel{\times 2}{\longrightarrow}2\stackrel{+1}{\longrightarrow}3\stackrel{\times 2}{\longrightarrow}6$,概率为 $\frac{1}{8}$;
- $1\stackrel{+1}{\longrightarrow}2\stackrel{\times 2}{\longrightarrow}4$,概率为 $\frac{1}{4}$;
- $1\stackrel{\times 2}{\longrightarrow}2\stackrel{\times 2}{\longrightarrow}4$,概率为 $\frac{1}{4}$。
因此,期望步数为 $4 \cdot \left(3 \cdot \frac{1}{8}\right) + 2 \cdot \left(2 \cdot \frac{1}{4} \right) =\frac{5}{2} \equiv 499122179 \pmod{998244353}$。
在第三个测试用例中,对于 $n=8$,期望步数为 $\frac{137}{32}\equiv 717488133\pmod{998244353}$。
在第四个测试用例中,对于 $n=15$,期望步数为 $\frac{24977}{4096} \equiv 900515847 \pmod{998244353}$。
由 ChatGPT 4.1 翻译