2018.12.31 NOIP训练 偶数个5(简单数论)

版权声明:随意转载哦......但还是请注明出处吧: https://blog.csdn.net/dreaming__ldx/article/details/85469791

传送门
对于出题人 z x y o i zxyoi % \% 为敬题目需要龟速乘差评
题意简述: 5 e 5 5e5 组数据,给出n,请你求出所有n位数中有偶数个5的有多少, n 1 e 18 n\le1e18


思路:一眼数位 d p dp ,哎哟这 n n 怎么这么大绝望.jpg
既然是 z x y o i zxyoi 大毒瘤的题自然要推一推式子了无奈.jpg
考虑对每一位构造生成函数:

  1. 首位: F ( x ) = 8 + x F(x)=8+x
  2. 非首位: F ( x ) = 9 + x F(x)=9+x

所以答案就是 ( 8 + x ) ( 9 + x ) n 1 (8+x)(9+x)^{n-1} 展开之后所有次数为偶数的项的系数之和。
然后来一波变形:
( 8 + x ) ( 9 + x ) n 1 = ( x + 9 ) n ( x + 9 ) n 1 (8+x)(9+x)^{n-1}=(x+9)^n-(x+9)^{n-1}
<=> ( 1 + 9 ) n ( 1 + 9 ) n 2 ( 1 + 9 ) n 1 ( 1 + 9 ) n 1 2 \frac{(1+9)^n-(-1+9)^n}2-\frac{(1+9)^{n-1}-(-1+9)^{n-1}}2 使用二项式定理进行变形
<=> 1 0 n + 8 n 1 0 n 1 8 n 1 2 \frac{10^n+8^n-10^{n-1}-8^{n-1}}2
然后常规快速幂感觉挺慢的就上了一波倍增预处理。
代码

猜你喜欢

转载自blog.csdn.net/dreaming__ldx/article/details/85469791