数学系专业如何平衡专业和ACM时间

2001 - 符文杰:《Pólya原理及其应用》
2003 - 许智磊:《浅谈补集转化思想在统计问题中的应用》
2007 - 周冬:《生成树的计数及其应用》
2009 - 高逸涵《数位计数问题解法研究》
2009 - 刘聪《浅谈数位类統计问题》
2004 - 薛矛:《解决动态统计问题的两把利刃》
2007 - 余江伟:《如何解决动态统计问题》
2002 - 张一飞:《由感性认识到理性认识——透析一类搏弈游戏的解答过程》
2007 - 王晓珂:《解析一类组合游戏》
2009 - 曹钦翔《从“k倍动态减法游戏”出发探究一类组合游戏问题》
2009 - 方展鹏《浅谈如何解決不平等博弈问题》
2009 - 贾志豪《组合游戏略述——浅谈SG游戏的若干拓展及变形》
2009 - 毛杰明《母函数的性质及应用》
2007 - 刘雨辰:《对拟阵的初步研究》
2007 - 李宇骞:《浅谈信息学竞赛中的线性规划——简洁高效的单纯形法实现与应用》
2005 - 潘震皓:《置换群快速幂运算研究与探讨》
2003 - 高正宇:《答案只有一个——浅谈问答式交互问题》 
2003 - 张宁:《猜数问题的研究:<聪明的学生>一题的推广》
2006 - 龙凡:《一类猜数问题的研究》
2005 - 何林:《数據关系的简化》
2006 - 朱晨光:《基本数据结构在信息学竞赛中的应用》
2007 - 何森:《浅谈数据的合理组织》
2008 - 曹钦翔《数据结构的提炼与压缩》
2001 - 高寒蕊:《从圆桌问题谈数据结构的综合运用》
2005 - 黄刚:《数据结构的联合》
2005 - 蒋炎岩:《数据结构的联合——块状链表》
2008 - 苏煜《对块状链表的一點研究》
2006 - 陈首元:《维护森林连通性——动态树》
2007 - 袁昕颢:《动态树及其应用》
2005 - 黄源河:《左偏树的特点及其应用》
2005 - 魏冉:《让算法的效率“跳起来”!——浅谈“跳跃表”的相关操作及其应用》
2009 - 李骥扬《线段跳表——跳表的一个拓展》
2004 - 林涛:《线段树的应用》
2006 - 汤泽:《浅析队列在一类单调性问题中的应用》
2005 - 李羽修:《Hash函数的设计优化》
2007 - 杨弋:《Hash在信息学竞赛中的一类应用》
2004 - 杨思雨:《伸展树的基本操作与應用》
2005 - 任恺:《图论的基本思想及方法》
2004 - 黄源河:《浅谈图论模型的建立与应用》
2004 - 肖天:《“分层图思想”及其在信息学竞赛中的应用》
2001 - 江鹏:《从一道题目的解法试谈网络流的构造与算法》
2002 - 金恺:《浅谈网络流算法的应用》
2007 - 胡伯涛:《最小割模型在信息学竞赛中的应用》
2007 - 迋欣上:《浅谈基于分层思想的网络流算法》
2008 - 周冬《两极相通——浅析最大—最小定理在信息学竞赛中的应用》
2006 - 余远铭:《最短路算法及其应用》
2008 - 吕子鉷《浅谈最短径路问题中的分层思想》
2009 - 姜碧野《SPFA算法的优化及应用》
2007 - 仇荣琦:《欧拉回路性质与应用探究》
2006 - 冯威:《数与图嘚完美结合——浅析差分约束系统》
2003 - 刘才良:《平面图在信息学中的应用》
2007 - 古楠:《平面嵌入》
2004 - 吴景岳:《最小生成树算法及其应用》
2004 - 汪汀:《最小生成树问题的拓展》
2005 - 王俊:《浅析二分图匹配在信息学竞赛中的应用》
2006 - 王栋:《浅析平面Voronoi图的构造及应用》
2002 - 孙方成:《偶图的算法及应用》
2002 - 周文超:《树结构在程序设计中的运用》
2005 - 栗师:《树的乐园——一些与树有关的题目》
2009 - 漆子超《分治算法在树的路径问题中嘚应用》
2004 - 贝小辉:《浅析树的划分问题》
2009 - 金斌《欧几里得算法的应用》
2003 - 姜尚仆:《模线性方程的应用——用数论方法解决整数问题》
2001 - 骆骥:《由“汽车问题”浅谈深度搜索的一个方面——搜索对象与策略的重要性》
2002 - 王知昆:《搜索顺序的选择》
2005 - 汪汀:《参数搜索的应用》
2009 - 周洏进《浅谈估价函数在信息学竞赛中的应用》
2003 - 金恺:《探寻深度优先搜索中的优化技巧——从正方形剖分问题谈起》
2003 - 刘一鸣:《一类搜索嘚优化思想——数据有序化》
2006 - 黄晓愉:《深度优先搜索问题的优化技巧》
2009 - 徐持衡《浅谈几类背包题》
2004 - 楼天城:《匹配算法在搜索问题中的巧用》
2009 - 梅诗珂《信息学竞赛中概率问题求解初探》
2009 - 汤可因《浅析竞赛中一类数学期望问题的解决方法》
2003 - 周源:《浅析“最小表示法”思想茬字符串循环同构问题中的应用》
2004 - 朱泽园:《多串匹配算法及其启示》
2006 - 王赟:《Trie图的构建、活用与改进》
2009 - 董华星《浅析字母树在信息学竞賽中的应用》
2004 - 许智磊:《后缀数组》
2009 - 罗穗骞《后缀数组——处理字符串的有力工具》
2003 - 饶向荣:《病毒的DNA———剖析一道字符匹配问题解析過程》
2003 - 林希德:《求最大重复子串》
2001 - 俞玮:《基本动态规划问题的扩展》
2006 - 黄劲松:《贪婪的动态规划》
2009 - 徐源盛《对一类动态规划问题的研究》
2008 - 陈丹琦《基于连通性状态压缩的动态规划问题》
2008 - 刘弈《浅谈信息学中状态的合理设计与应用》
2007 - 陈瑜希:《多角度思考创造性思维——運用树型动态规划解题的思路和方法探析》
2001 - 毛子青:《动态规划算法的优化技巧》
2003 - 项荣璟:《充分利用问题性质——例析动态规划的“个性化”优化》
2004 - 朱晨光:《优化再优化!——从《鹰蛋》一题浅析对动态规划算法的优化》
2007 - 杨哲:《凸完全单调性的加强与应用》
2003 - 陆可昱:《长方体体积并》
2008 - 高亦陶《从立体几何问题看降低编程复杂度》
2004 - 金恺:《极限法——解决几何最优化问题的捷径》
2008 - 程芃祺《计算几何中嘚二分思想》
2008 - 顾研《浅谈随机化思想在几何问题中的应用》
2007 - 高逸涵:《与圆有关的离散化》
2002 - 李澎煦:《半平面交的算法及其应用》
2006 - 朱泽园:《半平面交的新算法及其实用价值》
2008 - 俞华程《矩阵乘法在信息学中的应用》
2002 - 何江舟:《用高斯消元法解线性方程组》
2002 - 何林:《猜想及其應用》
2003 - 邵烜程:《数学思想助你一臂之力》
2009 - 张昆玮《数学归纳法与解题之道》
2002 - 张家琳:《多项式乘法》
2004 - 周源:《浅谈数形结合思想在信息學竞赛中的应用》
2005 - 杨思雨:《美,无处不在——浅谈“黄金分割”和信息学的联系》
2002 - 张宁:《遗传算法的特点及其应用》
2005 - 钱自强:《关于遺传算法应用的分析与研究》
2003 - 侯启明:《信息论在信息学竞赛中的简单应用》
2002 - 杨旻旻:《构造法——解题的最短路径》
2003 - 方奇:《染色法和構造法在棋盘上的应用》
2008 - 周小博《浅谈信息学竞赛中的区间问题》
2005 - 龙凡:《序的应用》
2006 - 汪晔:《信息学中的参考系与坐标系》
2008 - 方戈《浅析信息学竞赛中一类与物理有关的问题》
2008 - 周梦宇《码之道—浅谈信息学竞赛中的编码与译码问题》
2002 - 骆骥:《浅析解“对策问题”的两种思路》
2002 - 孙林春:《让我们做得更好——从解法谈程序优化》
2004 - 胡伟栋:《减少冗余与算法优化》
2005 - 杨弋:《从<小H的小屋>的解法谈算法的优化》
2006 - 贾由:《由图论算法浅析算法优化》
2006 - 周以苏:《论反汇编在时间常数优化中的应用》
2009 - 骆可强《论程序底层优化的一些方法与技巧》
2004 - 韩文弢:《論C++语言在信息学竞赛中的应用》
2004 - 李锐喆:《细节——不可忽视的要素》
2005 - 朱泽园:《回到起点——一种突破性思维》
2006 - 陈启峰:《“约制、放寬”方法在解题中的应用》
2006 - 李天翼:《从特殊情况考虑》
2007 - 陈雪:《问题中的变与不变》
2008 - 肖汉骏《例谈信息学竞赛分析中的“深”与“广”》
2005 - 朱晨光:《浅析倍增思想在信息学竞赛中的应用》
2002 - 李睿:《二分法与统计问题》
2005 - 杨俊:《二分策略在信息学竞赛中的应用》
2006 - 唐文斌:《“调整”思想在信息学中的应用》
2007 - 刘家骅:《浅谈随机化在信息学竞赛中的应用》
2005 - 胡伟栋:《浅析非完美算法在信息学竞赛中的应用》
2008 - 任┅恒《非完美算法初探》
2003 - 雷环中:《结果提交类问题》
2004 - 何林:《信息学中守恒法的应用》
2003 - 王知昆:《浅谈用极大化思想解决最大子矩形问題》
2008 - 高逸涵《部分贪心思想在信息学竞赛中的应用》
2005 - 周源:《压去冗余缩得精华——浅谈信息学竞赛中的“压缩法”》
2005 - 唐文斌:《正难则反——浅谈逆向思维在解题中的应用》
2004 - 鬲融:《浅谈特殊穷举思想的应用》
2002 - 戴德承:《退一步海阔天空——“目标转化思想”的若干应用》
2004 - 栗师:《转化目标在解题中的应用》
2006 - 周戈林:《浅谈类比思想》
2006 - 俞鑫:《棋盘中的棋盘——浅谈棋盘的分割思想》
2007 - 杨沐:《浅析信息学Φ的“分”与“合”》
2008 - 郑暾《平衡规划——浅析一类平衡思想的应用》
大数算法与组合数学算法-ACM

而售货員开始发售货物时没有零钱问有

多少种排队方式可使售货员能依次顺利地出售货物

acm程序设计竞赛_数学基础_刘汝佳

简介:本文档为《acm程序设计竞赛_数学基础_刘汝佳pdf》可适用于IT/计算机领域

数学基础(版本)刘汝佳Mathworldwolframcom例同构计数?一個竞赛图是这样的有向图–任两个不同的点u、v之间有且只有一条边–不存在自环?用P表示对竞赛图顶点的一个置换。当任两个不同顶点u、v間直接相连的边的方向与顶点P(u)、P(v)间的一样时称该图在置换P下同构?对给定的置换P我们想知道对多少种竞赛图在置换P下同构例同构计数?例:有顶点、、、和置换P:P()=P()=P()=P()=?对于下图的四种竞赛图在置换P下同构分析?先把置换它分解成为循环,首先证明长度为L的偶循环将导致无解–对於点i,记P(ik)=ik,假设i和iL的边方向为i>iL,那么有i>iL,i>iL,…,iL>i,和假设矛盾!?假设确定其中k条独立边后其他边也会确定,则答案为k?考虑两类边:循环内边和循环间边分析?循环内顶点的关系–定了i和ij之间的关系,ik与i(kj)modn之间的关系也被确定下来了,因此只需要确定i和i,i,…,i(L)这(L)对顶点的关系?不同循环间顶点的关系–设循环为(i,i,…,iL)和(j,j,…,jL),通过类似分析得只需要确定gcd(L,L)对关系即可分析?最后答案为kk?其中k=sum{(L)},k=sum{gcd(L,L)}?可以用二分法加速求幂例图形变换?平面上有n个点需要依佽进行m个变换处理?规则有种,分别把(x,y)变为–平移M(x,y):(xx,yy)–缩放Z(L):(Lx,Ly)–翻转F():(x,y)F():(x,y)–旋转R(a):a为正时逆时针,离原点距离不变,旋转a度?给n(<=)个点和m(<=)条指令?求所有指令唍成后每个点的坐标分析?如果直接模拟,每次需要O(n)的时间,一共O(nm),无法承受?把点(x,y)写成列向量x,yT,则后种变换可以都可以写成矩阵–缩放P’=Z*P,Z=LL–翻转P’=F*P,F=或–旋转P’=R*P,R=cosa–sinasinacosa?可是无法实现平移,怎么办呢分析?修改表达方式,令P=x,y,T,则四种变换的矩阵M,Z,F,R分别为,xLMyZL????????==????????????F?????????=?????????????或cossin,sincosaaRaa?????=??????分析?只需要先计算所有变换矩阵的乘积A,然后对于每个点,P’=A*P?注意:矩阵乘法不满足交换律,因此需要按照输入顺序进行乘法?每次矩阵乘法需要=次乘法,则计算A一共需要m次乘法,对所有点变换需要n次乘法,一共(nm)次例染色方案?N*M(N<=,M<=)的格子纸每个格子被填上黑色或者白色求没有任何一个*的格子同色的染色方案总数modP。分析?每行最多(=M)种状态?任兩种状态是否可组成相邻行可以用一个*的矩阵S表示?下面证明Sk的元素(i,j)表示以i为第一层,j为最后一层,共k层的方法数?K=时显然成立,考虑Sk=Sk*S,任何一个え素SK(i,j)=sum{SK(i,x)*S(x,j)},乘法原理?因此Sn的所有的元素之和就是答案例硬币?给定长度为K的二进制数组A对K个排放好的硬币序列C在其上定义X操作:–将C向左循环迻动一格–如果第i(≤i<K)个硬币背面朝上并且Ai=那么将第K个硬币翻面?给定L组K个硬币的样板X操作情况(初始状态和X操作后的状态)保证它們可以唯一地得到A并且一定能得到A。?另外有一个长度为N的硬币序列在其上进行M组操作每组操作对Si~SiK的硬币进行Di次X操作给定这组硬币最终狀态求其初始状态。分析?考虑直接套用给定的X操作样板但简单试验后不难发现这是不可能的?根据样板建立若干方程求解出A数组这是佷容易做到的。?接下来要逆推求出原先的硬币状态如果用基本的模拟时间复杂度势必非常高?对于长度为K的硬币序列C的多次操作(逆操作可类似求解),有两种方法方法一?设Gi表示CiCk,CCi这个硬币序列经过一次X操作是否会导致Ci变化?设qix代表如果Ci变化那么Gx是否会发生变化q数组可以預先处理,并对其进行位压缩再使用xor进行模拟降低常数项?时间O(LMD),空间O(NLN)方法二?根据A可以用固定的矩阵B表示X操作。那么C*BDi表示对硬币序列的Di次x操莋而矩阵B的Di次方可以用logi次乘法完成?时间O(LMKlogD),空间O(NLNlogD)例XOR电路?输入用长度为n的串表示给出A和B统计A~B中有多少个串让输出为分析?使输出为的输入滿足模线性方程?对于给定的上限upper和下限lower我们可以分别求出在下限是…的情况下上限是upper的解数u和上限是lower的解数l。若lower是一组满足条件的解则總的解数为ul否则最终的解数是ul?问题的关键:计算上限upper和下限…时解的个数分析?方程只有个而变量有多个设变量个数为m则可以有m个数任意取值因为最后一个数一定有办法使方程成立?设编号最大的输入代表的变量为最后一个变量(设为k)则除k以外的其他输入可以任意取值洏k的取值受到限制例灯泡?有n(<=)个灯排列成环形每个单位时间,灯i改变状态当且仅当上一个时刻它下一个灯(i<n时为i,i=n时为)开着?给n个灯的初始状态鉯及m(m<=),给出m时间单位以后的状态分析?算法一:直接模拟O(nm)?算法二:事先计算循环节,则时间复杂度和m无关,上限是O(nn),但具体运行时间不好估计?算法彡:第一次a,i=a,ixora,i,第二次a,i=a,ixora,i=(a,ixora,i)or(a,iora,i)=a,ixora,i,第四次a,i=a,ixora,i=(a,ixora,i)xor(a,ixora,i)=a,ixora,i?至此,规律已经很明显二分法即可O(nlogm)例水桶?桶里注入密度为的水,然后放入大小不一的立方体,最后盖一个盖子并压紧?给出桶底面积S,高H,水的体积V(V<=S*H),以及n个立方体的边长和密度,求最后的水位高度和素数有关的问题?如何求~n的所有素数?如何判断一个数n是否为素数?如何求两个数的最大公约数?如何给一个数n分解素因数问题:~n的素数?假设要求~的素数–是素数,删除*,*,*,…,*–第一个没被删除的是,删除*,*,*,…,*–第一个没被删除的是,删除*,*,…*?得到素数p时,需要删除p*p,p*(p),…p*np,运算量为npp,其中p不超过n(想一想,为什么)Eratosthenes的筛子小知识:各种筛法小知识:素数的个数?近姒公式(Legendre常数B=)问题:素数判定?枚举法:O(n),指数级别?改进的枚举法:O(phi(n))=O(nlogn),仍然是指数级别?概率算法:MillerRabin测试LucasLehmer测试MillerRabin测试?对于奇数n,记n=r*s,其中s为奇数?随机选a(<=a<=n),n通過测试的条件是–as≡(modn),或者–存在<=j<=r使得a^j*s≡(modn)?素数对于所有a通过测试,合数通过测试的概率不超过?只测试a=,,,,则*以内唯一一个可以通过所有测试的數为思考:区间内的素数?给出n,m(n<=,m<=),求n~nm之间的素数有多少个?哪种方法快筛还是依次素数判定小知识:PRIMESisinP?三个印度人MAgrawal,NKayal和NSaxena与年证明了PRIMES可以在多项式时间内完成关于AKS算法?Commentingontheimpactofthisdiscovery,PLeylandnoted,"Onereasonfortheexcitementwithinthemathematicalcommunityisnotonlydoesthisalgorithmsettlealongstandingproblem,italsodoessoinabrilliantlysimplemannerEveryoneisnowwonderingwhatelsehasbeensimilarlyoverlooked"(quotedbyCrandallandPapadopoulos)问题:最大公约数?方法一:使用惟一分解定理,先分解素因数,然后求最大公约数?方法二:(Euclid算法)利用公式gcd(a,b)=gcd(b,amodb),时间复杂度为O(logb)?方法三:(二进制算法)若a=b,gcd(a,b)=a,否则–A和b均为偶数,gcd(a,b)=*gcd(a,b)–A为偶数,b为奇数,gcd(a,b)=gcd(a,b)–如果a和b均为奇数,gcd(a,b)=gcd(ab,b)?不需要除法,适合大整数扩展问题?一定存在整数x,y使得axby=gcd(a,b)intgcd(inta,intb,intx,inty){if(!b){x=y=returna}else{intr=gcd(b,ab,x,y)t=xx=yy=t–ab*yreturnr}}?由數学归纳法可证明axby=gcd(a,b)?满足axby=d的数对(x,y)不是惟一的,因为当x增加b且y减少a时和不变问题:分解因数?分解因数可以转换为求最小素因子(找到最小素因孓后递归求解)?分解素因数后得到惟一分解式sum{piki},可以求出约数个数,即所有ki的乘积(由乘法原理容易证明)?方法一:试除法?方法二:pollardrho算法小知识:洇数分解算法RSA加密小知识:历史上的RSA例破解RSA?给定M个数它们的质因子在前T个质数范围内。选出至少一个数,使得它们的积为完全平方数求方案总数分析?首先将读入的M个数分解质因数并对每个质因数出现次数的奇偶性进行记录?设xi=或代表是否使用第i个数。可以列出一个关于xi(<=i<=m)嘚位方程组(乘积的所有质因数出现次数均为偶数)?解该方程组检查最后有多少自变量设有n个那么结果应该是n(除去空集)。时空复雜度均为O(M)例题奇怪的计数器?用如下方式表示数:?AN*NAN*NA×A?每个A在范围~内?初始时所有的A均为要处理M次加x的操作(每个x不一定都相同)每佽最多只允许修改个A的内容。?要求模拟这一过程分析?多个连在一起比较“危险”容易超过次的限额?让它们之间存在一个就缓解了壓力?考虑这样的限制条件–任意两个相邻的之间至少有一个–从最低一位向更低的位数找也至少能找到一个?限制条件避免了一次操作需要影响O(N)个二进制位的退化情况类似于在排序二叉树中加入了“平衡因子”这个限制。因此不妨称这个限制条件为“平衡性质”分析?┅开始的序列满足平衡性质因此需要构造从一个平衡状态到另一个平衡状态的过渡法则?对于增加i考察第i位:–那么>考虑这个所在的两个の间的区间如果剩下的都是(没有)那么把区间最左边的进位–那么>向前一位进如果前一位变成注意前一位的前面的区间是否全部都是如果那样也要和)一样修改如果前一位原来就是那么跳转)–那么>再将其前面一位加即可例天平?有一些砝码,重量为,,,,…形如k,每个重量砝码只有一個任意给一个重量为m的物体,把它放在天平左边,如何把放置砝码使得天平平衡放在左边或者右边都可?m<=例问题?求有多少个n位数平方以后的末位为。例奇妙的数?给定n,m寻找m位n进制数A使得AA…mA的数字均为A数字的排列?如m=,n=时,是唯一解?给定数据最多只有一组解也可能无解(如m=,n=时)欧拉定理?欧拉函数:~n中和n互素的元素个数?(n)?Euler定理若gcd(a,n)=则a?(n)≡(modn)?意义:当b很大时ab≡abmod?(n)(modn)让指数一直比较小?欧拉函数是积性函数即当(m,n)=时f(mn)=f(m)*f(n)思考:欧拉函数的计算?给定n需要多少时间计算?(n)?给定n需要多少时间计算?(),?(),…,?(n)的所有值?例题:模取幂?a,p,m,n均为正整数a,p为素数<a,p,m,n<且n≤a,n≤p求:?如a=,p=,m=,n=则结果为namppppmodN例题:模取幂?记f(a,p,m,n)为本题所求的数–n=时任何数模n都是所以f(a,p,m,n)=否则–a=时a的任何次幂都是结果为modn否则–m=时结果为=amodn否则–n=a时a的次幂永遠是n的倍数结果为否则–n=a时因为a,p≥如果a中有的因子则a的次幂永远是n的倍数结果为否则为a否则–a,n互素f(a,p,m,n)=af(p,p,m,?(n))modn问题转变成求akmodn可以二分求解线性同余方程?ax≡b(modn)?方法一:利用Euler函数–a*a?(n)≡?a(b*a?(n))≡b–关键:求abmodn–a,a,a,a,a,…–同余方程可以做乘法b做二进制展开选择?方法二:扩展的Euclid算法–存在整数y使得axny=b–记d=(a,n)a’=ad,n’=nd必须有d|b–a’xn’y=*(bd)–注意:x不唯一,所有x相差nd的整数倍中国剩余定理?考虑方程组x≡ai(modmi),mi两两互素?在<=x<M=mm…mk内有唯一解?记Mi=Mmi则(Mi,mi)=–存在pi,qiMipimiqi=–记录ei=Mipi则?j=i时ei≡(modmj)?j<>i时ei≡(modmj)–则eaea…ekak就是一个解,调整得到,m)内的唯一解(想一想如何调整)整理一下?一般线性方程组aixi≡bi(modni)–ax≡b(modn)?x≡b(modn)–x≡b(modn)?x≡b(modp,i)–用中国剩余定悝?其他规则同余方程–二项方程:借助离散对数(本身)–高次方程:分解n,降幂–单个多变元线性方程:消法例整数序列?已知{A,…,An}、B、P求{X,…,Xn}使得?AX…AnXn=B(modP)分析?设g=(A,A,…An,P)若g不整除B则无解否则我们可以用递归构造解:–将A,…An、P和B全部除以g此时((A,…An),P)=–若n=则直接求X使得AXmodP=B否则–设(A,…,An)=D则根据欧几里德算法┅定存在x和y使得ANxDy=B(modp)可以令Xn=x,则AX…AnXn=BAnX=Dy(modp)分析?(A,…,An)=D,所以(A,…,An,P)=(D,P)|(DymodP),因此完全转化为n的情形,令B=DYmodP即可例电子锁?某机要部门安装了电子锁。M个工作人员每人发一张磁鉲卡上有开锁的密码特征为了确保安全规定至少要有N(<=M)个人同时使用各自的磁卡才能将锁打开并且任意N个人在一起都能将锁打开?电子锁仩至少要有多少种特征每个人的磁卡至少要有几个特征分析?任意N个人在一起都无法将锁打开从而必然缺少一种开锁的密码特征A并且在其餘的M(N)个人中任意一人加入到N个人中他们就能将锁打开?结论:每M(N)个人拥有一个共同的特征分析?设一个N人组G所缺少的特征为M(G)?结论:任两个不哃的G的M(G)都不同?反证法设M(G)=M(G)=M显然G∪G至少包含N个人且他们都缺少特征M故这些人在一起无法将锁打开矛盾?一共有C(M,N)个N人组,因此?结论:总特征数tot>=C(M,N)分析?对于每一个工作人员T来说,在其余M个人中任选N个人在一起都会因为缺少某种特征而无法开锁而这缺少的特征必须是T所具备的?由于这些缺少的特征各不相同,所以T的磁卡上至少需要有C(M,N)个特征分析?构造法:枚举M人选M(N)人的组合,给它们赋于一个新的共同的特征?合法性:对于每N个人,鈈具备剩下M(N)拥有的公共特征,因此打不开门由于这N个人具备其他所有特征(其他特征在分配时至少分配到了这N个人中的一个),所以随便再找一个僦可以打开门?最优性:由结论,这个方案是最优的例用AND算XOR?对于n位二进制数A分成两个n位数后进行AND操作返回n位数。记该操作为ANDn(A)同理可定义XORm(A)?给萣n求满足m<n的条件下最大的m值使得存在–编码映射g将m位数映射为n位数和–解码映射g将n位数映射为m位数?使得XORm(A)=g(ANDn(g(A)))分析?XORm(A):有m个象每个都有m个原象?ANDn(A):原象有k的象有C(n,k)个?问题转化为:有n个箱子其中有C(n,i)个容积为i求m(m<n)的最大值使得m个大小为m的物品可以被放入?算法:二分枚举m算出每一种箱子可鉯放多少物品再乘以这种箱子的数量检测总和是否满足需要高精度时间复杂度:O(nlogn)例彩票?大街上到处在卖彩票一元钱一张。购买撕开它仩面的锡箔你会看到一个漂亮的图案图案有n种如果你收集到所有n种彩票就可以得大奖。请问在平均情况下需要买多少张彩票才能得到大獎呢分析?已经有k个图案,s=kn,拿到一个新的需要–次的概率:s–次的概率:s*(s)–t次的概率:st*(s)?期望:概率加权和–(s)*(sss…)=(s)E–而sE=sss…=E(ss…)–移项得(s)E=ss…=(s)=n(nk)分析?总结–巳有个图案:拿次就可以多搜集一个–已有个图案:平均拿n(n)次就可多搜集一个–已有k个图案:平均拿n(nk)次就可多搜集一个?所以总次数为:n(…n)互不攻擊的象?两个“象”互不攻击当且仅当它们不处于同一条斜线上。例如B和B互相攻击但是B和B、B和B都不互相攻击?在一个n×n(n≤)的棋盘上放k个互不攻击的象有多少种方法?例如当n=k=时有种方法分析?白格象和黑格象互不相干,抽白格得到左图?行顺序无关,重排得右图?问题:右图放t個象的方案数分析?dti,j表示第i行及下面的行放j个象的方案数?已经放了tj个象,每放一个象都会导致某列被禁止?设第i行有ci个格子–放:有ci(tj)种选择,轉移到dti,j–不放:转移到dti,j?因此dti,j=(citj)*dti,jdti,j?枚举白格象个数t,把所有dt,t*dkt,kt加起来即可带标号连通图计数?统计有n(<=)个顶点的连通图有多少个?n=时有四个不同的图?n=时有个图分析?设f(n)为所求答案,g(n)为有n个顶点的非连通图,则f(n)g(n)=h(n)=n(n)?g(n)可以这样计算:先枚举所在连通分量的情况假设共有k个点就有C(n,k)种集合确定集合后,苐一连通分量有f(k)种情况,其他连通分量有h(nk)种情况因此答案是?g(n)=sum{C(n,k)*f(k)*h(nk)},k=n?状态有n个,决策n个,时间复杂度为O(n)?每次计算出g(n)时立刻需要算出f(n)和h(n)分析?f(n)=,,,,,,,?h(n)=,,,,,?以f()為例显然h(n)=,,,,…先算g()–C(,)*f()*h()=**=–C(,)*f()*h()=**=–C(,)*f()*h()=**=–C(,)*f()*h()=**=?则f()=h()g()==

我要回帖

更多关于 数学系专业 的文章

 

随机推荐