天津--泥人张

题目大意

给定$m$,求$C_m^k (k \in [0,m])$中被$4$整除的数的个数。($m \le 10^3000$)取自$CGMO2012 P8$。

关于 $4$

显然,$4$可以分解成$2^2$,也就是说,如果一个数包含的4的方幂大于等于2,那么这个数就能被4整除。

关于组合数

对于一个组合数$C_m^k$,它的公式是$C_m^k = \frac {m!}{k!\cdot(m-k)!}$。

判定组合数被$4$整除

如果我们统计$F_i$表示$i!$含有$2$的方幂的个数,那么$C_m^k$含有2的方幂的个数为$F_{m} - F_{k} - F_{m - k}$,$C_m^k$被$4$整除当且仅当$F_{m} - F_{k} - F_{m - k} \ge 2$(为$0$表示组合数为奇数,为$1$表示组合数是偶数但不被$4$整除)。

$F_x$的求值

因为$x!$是$1~x$的乘积,所以在$1~x$中,每个被$2$整除的数对$F_x$都有$1$的贡献;而每个被$4$整除的数额外又有$1$的贡献,以此类推。所以得到$F_x = \sum_{i=1}^{\infty} {\lfloor \frac{n}{2^i} \rfloor}$。

将$x$写成二进制格式$(a_pa_{p-1}...a_0)_2$,用$s(x)$表示$x$在二进制表达下各个位置的数的和(即$1$的个数),那么公式可以写成:

\[\begin{array}&F_x &=& (a_pa_{p-1}…a_1)_2 + (a_pa_{p-1}…a_2)_2 + … + (a_p)_2 + 0 \\ &=& (a_p \cdot 2^{p-1} + a_{p-1} \cdot 2^{p-2} + … + a_1 \cdot 2^0) + (a_p \cdot 2^{p-2} + a_{p-3} \cdot 2^{p-2} + … + a_2 \cdot 2^0) + … + (a_p \cdot 2^0) \\ &=& a_p \cdot (2^{p-1} + 2^{p-2} + … + 1) + a_{p-1} \cdot (2^{p-2} + 2^{p-3} + … + 1 ) + … + (a_1 \cdot 1) + (a_0 \cdot 0) \\ &=& a_p\cdot(2^p-1) + a_{p-1} \cdot (2^{p-1} - 1) + … + a_0 \cdot (2^0-1) \\ &=& (a_p\cdot2^p+a_{p-1}\cdot2^{p-1}+…+a_0\cdot2^0)-(a_p+a_{p-1}+…+a_0) \\ &=& x - s(x) \end{array}\]

$4$的倍数的个数

为了方便计算,我们将$C_m^k$写成$C_{k+b}^k$,那么得到$C_{k+b}^k = \frac {(k+b)!} {k!\cdot b!}$,所以组合数需要满足

\[\begin{array}&F_{k+b} - F_{k} - F_{b} &\ge& 2 \end{array}\]

接下来将不合法的分情况讨论,当$F_{k+b} - F_{k} - F_{b} = 0$时:

\[\begin{aligned} F_{k+b} - F_{k} - F_{b} &= 0 \\k+b-s(k+b) &= k-s(k)+b-s(b) \\s(k+b) &= s(k)+s(b) \end{aligned}\]

根据二进制加法进位的特征,如果两个数$k$和$b$相加出现了进位,那么必然有$s(k+b) \lt s(k) + s(b)$。

所以当$s(k+b) = s(k) + s(b)$时,$k+b$必然不进位,即在二进制表达下$k$和$b$的$1$是错开的,同时$k+b=m$是确定的,对于$k$,每个位置上的$1$可以选择取或不取,所以合法的$k$的个数为$2^{s(k+b)}$。

当$F_{k+b} - F_{k} - F_{b} = 1$时:

\[\begin{aligned} F_{k+b} - F_{k} - F_{b} &= 1 \\k+b-s(k+b) &= k-s(k)+b-s(b) + 1 \\s(k+b) &= s(k)+s(b) - 1 \end{aligned}\]

与第一种情况类似,若出现$s(k+b) = s(k) + s(b) - 1$,则说明$k+b$出现了进位,且只进位$1$次,即$(01)_2+(01)_2=(10)_2$。

设$k+b$在二进制表达下出现相邻的$1$和$0$(且$1$在$0$前面)的次数为$t$。因为只进位$1$次,所以先选择某一对$(10)_2$,将其忽略,那么剩下的就都不进位,同第一种情况。所以k的个数为$t \cdot 2^{s(k+b)-1}$。

综上所述,排除掉两种不合法的情况,剩下的就是组合数中$4$的倍数的个数,即$m + 1 - 2^{s(m)} - t \cdot 2^{s(m)-1}$。

代码嘛,暂时没有。

时间: 2024-10-13 22:29:39

天津--泥人张的相关文章

转:泥人张看房日记-苏州庭园

http://suzhou.fang.com/ad/kfrj-19.htm 项目简介 物业类别:别墅 装修状况:毛坯 建筑类别:中式别墅 物业地址:苏州市区西北街190号 开 发 商:苏州庭园房屋开发有限公司 售 楼 处:苏州市区西北街190号 庭园,名字听起来就比较中式化,很容易想起苏州园林式建筑风格. 早先没听过这个楼盘,似乎一下子冒了出来,这个位于苏州老城区的新盘,起初还以为是个小盘,但资料显示其地块面积达到200亩——在寸土寸金的姑苏老城区,实属罕见的大型楼盘项目. 在楼书上看到,他们的

第五百零六、七天 how can I 坚持

昨天竟然去了趟天津,天津站下车去后广场 607路,先看了天津之眼,转的好慢啊,就和不转似的,然后一路走着去了天津古文化街,泥人张,感觉挺不错的,后来去了意式风情街,然后就去天津站附近的广场坐了会,确实有大城市的风范,海河水很清啊,有大海的味道,不错.昨天晚上回来去了wyy家,到了都10点了,又很晚才睡觉. 今天竟然去了朝阳公园,好大,能玩的东西还很多.wyy竟然买了辆自行车,然后我还去看了看iPhone7,貌似卖的还挺火,偏激了有点. 睡觉.

2014年天津市第一批科技计划项目

一.应用基础与前沿技术研究计划青年项目 序号 项目名称 承担单位 项  目 负责人 1 基于多分辨率的流体细节增强与交互编辑技术研究 天津大学天津市认知计算与应用重点实验室 刘世光 2 基于模式图的云数据检索关键技术研究 南开大学信息技术科学学院 温延龙 3 随机风险Petri网理论及在供应链建模中的应用 天津科技大学计算机科学与信息工程学院 蔡润身 4 结合人物模型的社会媒体话题传播与影响力分析及预测 天津大学天津市认知计算与应用重点实验室 王博 5 不确定云计算环境下调度算法的敏感度分析及优

C#使用window API 控制打印纸张大小(转载)

windows一个特点就是设备无关性,这样就给程序控制打印机提供了很好的方法. 首先引用“泥人张”写的打印API类. using System;using System.Collections;using System.Text;using System.Runtime.InteropServices;using System.Security;using System.ComponentModel;using System.Drawing.Printing;namespace PrintAPI

jquery动态创建表格

html代码 <input name="myname" id="myinput" onfocus="showMydiv('testname','sex','addr');"> <div id="mydiv" style="display:none;height:200px;width:196px;position:absolute;z-index:100;left:83px;top:40px;&qu

莱斯特站在宇宙中心呼唤爱 快来干了这碗鸡汤吧(转自网易)

这是一个信仰缺失的时代,不然社会也不会如此空前地重视对于梦想的宣传.就算是在代表着人类激情与血性的足坛江湖里,无论底层的球队多么努力,笑到最后的一定是皇马,拜仁或者巴萨等豪门,什么“凯泽斯劳滕神话”,它只存在于枯燥的历史课本中. 但在这个春天远了,夏天近了的“劳动节”里,无数怀揣梦想却总感有志难伸的工薪阶层们,当你们亲眼看到莱斯特城的长篇悬疑剧终于以冠军的名义喜剧收尾时,你们的人生是否也会从此改变呢? 在30万人左右的莱斯特郡,诺丁汉森林的旧日荣光如今也因同地域的莱斯特城的突然崛起而逐渐为世人所

权了共起更研些候新

趁着攻击的间隙我才有机会看这跟魔化剑士一般无二只是披了个巨大的斗篷而已全身血红威风无比而的属性 嚓嚓连续两剑伤害跳起当然是母的凌雪撅嘴道 大约一个小时的时间我已经来到了冰谷之上周围开始森寒起来好在我的一身盔甲厚重无比也在一定程度上削弱了寒冷对我的侵袭 到了城外大家松了口气冰茶笑道美无敌啊 栽木咸醋偕谝谴沿蕴景脱夷http://p.baidu.com/ihome/center?uid=2e7f6162633162346661368ccb&20171226=7o 在卸撞嗽圆剿写蓟涎褐孕钠http:/

天津政府应急系统之GIS一张图(arcgis api for flex)解说(三)显示地图坐标系模块

config.xml文件的配置例如以下: 1 2 <widget left="3" bottom="3" config="widgets/Coordinate/CoordinateWidget.xml" url="widgets/Coordinate/CoordinateWidget.swf" /> 源码文件夹例如以下: 地图坐标系模块的源码原理解析,具体的代码在下载的开源flexviewer自带的: (1)Coo

天津政府应急系统之GIS一张图(arcgis api for flex)解说(二)鹰眼模块

解说GIS功能模块实现之前,先大概说一下flexviewer的核心配置文件config.xml,系统额GIS功能widget菜单布局.系统的样式.地图资源等等都是在这里配置的,这里对flexviewer不熟悉的朋友,要先去flexviewer官网了解或者网上的其它资源了解才行; 鹰眼模块在config.xml文件的配置例如以下: <widget right="0" bottom="0" config="widgets/OverviewMap/Over