U472586 Code For 1(pro max 加强版)
题目背景
作者在考试的时候不会打正解,遂用数学方法求解,因觉此方法甚妙故写出此题。
具体做法请见[csdn博客](https://blog.csdn.net/2301_79177621/article/details/140679060?spm=1001.2014.3001.5501)
注:需要加高精度算法(博文里是没有高精度的)。
题目描述
- 有一个序列,初始时只有一个数 $n(0\le n\le2^{1024})$。
- 对于序列中每一个 $>1$ 的数,拆分成三个数 $\lfloor\frac n2\rfloor,n\bmod2,\lfloor\frac n2\rfloor$ 并替换原数,直到序列中没有>1的数为止。
- 查询最终序列中 $[l,r] (1\le l,r)$ 中有多少 $1$。
输入格式
输入三个数值$n,l,r$
输出格式
输出一个数表达$l,r$区间内1的
说明/提示
## 样例解释。
以样例组1举例

所以$2-5$区间内的表格为 $ [1,1,1,1] $ ,$1$ 一共有$4$个
以样例二为例

所以$3-10$区间内的表格为 $ [1,1,1,0,1,0,1,0] $ $1$ 一共有$5$个
## 数据范围:
对于 %10 的数据$0 \le n,l \le 10^{10},r \le 10^{9}$。
对于 %20 的数据$0 \le n,l \le 10^{20},r \le 10^{19}$。
对于 %30 的数据$0 \le n,l \le 10^{50},r \le 10^{49}$。
对于 %60 的数据$0 \le n,l \le 10^{100},r \le 10^{99}$。
对于 %90 的数据$0 \le n,l \le 10^{270},r \le 10^{269}$。
对于 %100 的数据$0 \le n,l \le 10^{309},r \le 10^{308}$。