https://www.luogu.org/problemnew/show/P1045
题面就不贴了,地址如上。
本题有两个很妙的地方:
一,用log算位数:
$\because 10^n 的位数是n+1$
$\therefore 我们想办法把 2^p-1转化为10^n的形式$,其中$2^p与2^p-1的位数相同(很显然),所以我们只用求2^p即可$
又$\because10^{lg2}=2$
$\therefore 10^{p\times lg2}=2^{p}$
$\therefore 位数即为p\times lg2+1$
二,用快速幂的思想:
因为出现了很大的p,而且只要求后500位,所以我们直接高精度快速幂,只管后500位,其他不变。
1 |
|