2018.12.31 NOIP训练 偶数个5(简单数论)
传送门
对于出题人zxyoizxyoizxyoi先%\%%为敬题目需要龟速乘差评。
题意简述:5e55e55e5组数据,给出n,请你求出所有n位数中有偶数个5的有多少,n≤1e18n\le1e18n≤1e18
思路:一眼数位dpdpdp,哎哟这nnn怎么这么大绝望.jpg
既然是zxyoizxyoizxyoi大毒瘤的题自然要推一推式子了无奈.jpg
考虑对每一位构造生成函数:
- 首位:F(x)=8+xF(x)=8+xF(x)=8+x
- 非首位:F(x)=9+xF(x)=9+xF(x)=9+x
所以答案就是(8+x)(9+x)n−1(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}(8+x)(9+x)n−1=(x+9)n−(x+9)n−1
<=>(1+9)n−(−1+9)n2−(1+9)n−1−(−1+9)n−12\frac{(1+9)^n-(-1+9)^n}2-\frac{(1+9)^{n-1}-(-1+9)^{n-1}}22(1+9)n−(−1+9)n−2(1+9)n−1−(−1+9)n−1 使用二项式定理进行变形
<=>10n+8n−10n−1−8n−12\frac{10^n+8^n-10^{n-1}-8^{n-1}}2210n+8n−10n−1−8n−1
然后常规快速幂感觉挺慢的就上了一波倍增预处理。
代码
2018.12.31 NOIP训练 偶数个5(简单数论)的更多相关文章
- 2018.12.31 NOIP训练 czy的后宫6(线性dp)
传送门 题意简述:给一个nnn个数的数列,你可以把它最多分成mmm段,求每段数之和的最大值的最小值,以及满足这个最小值的时候划分数列的方案数. 思路:第一个问题是二分经典问题,不妨设其答案为limli ...
- 2018.12.31 NOIP训练 czy的后宫5(树形dp)
传送门 题意:给一棵有根树,树有点权,最多选出mmm个点,如果要选一个点必须先选其祖先,问选出来的点权和最大值是多少. 直接背包转移就行了. 代码
- 2018.10.31 NOIP训练 锻造(方程式期望入门题)(期望dp)
传送门 根据题目列出方程: fi=pi∗(fi−1+fi−2)+(1−pi)∗(fi+1+fi)f_i=p_i*(f_{i-1}+f_{i-2})+(1-p_i)*(f_{i+1}+f_i)fi=p ...
- 2018.10.31 NOIP模拟 一串数字(数论+贪心)
传送门 把每一个数aaa质因数分解. 假设a=p1a1∗p2a2∗...∗pkaka=p_1^{a_1}*p_2^{a_2}*...*p_k^{a_k}a=p1a1∗p2a2∗...∗pkak ...
- 2018.10.15 NOIP训练 hyc的等比数列(数论+枚举)
传送门 一道不错的枚举题. 显然桶排序之后瞎枚举一波. 考虑枚举首项和末项,假设首项除去一个最大的平方因子得到的结果为xxx. 那么末项一定等于xxx乘上一个平方数. 于是我们枚举首项,算出xxx然后 ...
- 2018.12.31 bzoj3771: Triple(生成函数+fft+容斥原理)
传送门 生成函数经典题. 题意简述:给出nnn个数,可以从中选1/2/31/2/31/2/3个,问所有可能的和对应的方案数. 思路: 令A(x),B(x),C(x)A(x),B(x),C(x)A(x) ...
- 2018.11.02 NOIP训练 停车场(线段树)
传送门 这是一道困饶了我一年的题. 其实就是去年去NOIP提高组试水的时候考的模拟题 但当时我水平不够,跟ykykyk一起杠了一个下午都没调出来. 今天终于AAA了. 其实就是一个维护最长连续0101 ...
- 2018.12.31 bzoj4001: [TJOI2015]概率论(生成函数)
传送门 生成函数好题. 题意简述:求nnn个点的树的叶子数期望值. 思路: 考虑fnf_nfn表示nnn个节点的树的数量. 所以有递推式f0=1,fn=∑i=0n−1fifn−1−i(n>0) ...
- 2018.12.31 bzoj3992: [SDOI2015]序列统计(生成函数+ntt+快速幂)
传送门 生成函数简单题. 题意:给出一个集合A={a1,a2,...as}A=\{a_1,a_2,...a_s\}A={a1,a2,...as},所有数都在[0,m−1][0,m-1][0,m− ...
随机推荐
- FZU2150 :Fire Game (双起点BFS)
传送门:点我 题意:“#”是草,"."是墙,询问能不能点燃俩地方,即点燃俩“#”,把所有的草烧完,如果可以,那么输出最小需要的时间,如果不行输出-1 思路:暴力BFS,看到n和m都 ...
- 179. Largest Number(INT, String)
Given a list of non negative integers, arrange them such that they form the largest number. For exam ...
- PHP之PDO
PHP之PDO介绍 PDO为何物? POD(PHP Data Object)扩展在PHP5中加入,PHP6中将默认识用PDO连接数据库,所有非PDO扩展将会在PHP6被从扩展中移除.该扩展提供PHP内 ...
- java 異常抛出 throw 與 return
package 異常; public class TestException { public TestException() { } boolean test ...
- python之格式化输出
字符串格式化有两种方式,%和format 先介绍下%号的方法 #%s的语法结构,叫做占位符,就是先占一个位置,然后我们用真实的要显示的数据替换占位符即可#最简单的用法就是下面的方式,其实%s还有其他的 ...
- python requests的content和text方法的区别(转)
原文地址: http://blog.csdn.net/xie_0723/article/details/51361006 问题: 一直在想requests的content和text属性的区别,从pri ...
- iOS 网络操作与AFNetworking
一.早前的几个网络框架 1.ASI框架: HTTP终结者.很牛, 但是有BUG, 已经停止更新. 2.MKNetworkKit (印度人写的). 3.AFN一直还在更新. AFNetworking的出 ...
- InertialNav
https://github.com/priseborough/InertialNav Instructions To Run Simulink Model Note : Simulink model ...
- Json中不支持任何形式的注释,那我们要怎么解决呢
Json中不支持任何形式的注释,我们可以使用曲线救国的思路:在对象的定义中添加一个key(comment),其对应的value值就是注释填写的语句. 如: { "name":&qu ...
- 转换 transform
转换 定义: 1.转换是使元素改变形状.尺寸和位置的一种效果 2.又称为变形,即,可以向元素应用 2D 或 3D 转换,从而对元素进行旋转.缩放.移动或倾斜 3.2D转换:使元素在 X 轴和 Y 轴平 ...