2019牛客暑期多校D.Big Integer
题面
题意:
定义$A(n)$为$n$个1构成的数字,如$A(3)=111$,计算有多少对$(i,j)$使得$A(i^j) \% p = 0$。
思路:
通过枚举发现是有上面的等式是有循环节的,而且循环节是$p-1$的因子,因此暴力枚举计算出循环节$d$,接下来就是求有多少对$i^j \% d=0$。
将$d$进行质因子分解,得
那么要使$i^j \%d = 0$,则$i$必须为
的倍数。因此一共有$\frac{n}{g}$个合法的$i$
由于$q_i \leq 30$,因此$j$在$30$之后和$30$的答案相同,因此$j$只需要枚举到$[1,30]$,分别计算出$g$的值。
代码:
1 |
|