国家集训队2008论文集 矩阵乘法
国家集训队2004论文集 朱晨光

优化,再优化!——从《鹰蛋》一题浅析对动态规划算法的优化安徽省芜湖市第一中学朱晨光目录Ø关键字 (2)Ø摘要 (2)Ø正文 (2)n引言 (2)n问题 (2)n分析 (3)u算法一 (3)u算法二 (4)u算法三 (4)u算法四 (6)u小结 (7)u算法五 (7)Ø总结 (10)Ø结束语 (11)关键字优化动态规划模型摘要本文就Ural 1223 《鹰蛋》这道题目介绍了五种性能各异的算法,并在此基础上总结了优化动态规划算法的本质思想及其一般方法。
全文可以分为四个部分。
第一部分引言,阐明优化动态规划算法的重要性;第二部分给出本文讨论的题目;第三部分详细讨论这道题目五种不同的动态规划算法,并阐述其中的优化思想;第四部分总结全文,再次说明对于动态规划进行优化的重要性,并分析优化动态规划的本质思想与一般方法。
正文引言在当今的信息学竞赛中,动态规划可以说是一种十分常用的算法。
它以其高效性受到大家的青睐。
然而,动态规划算法有时也会遇到时间复杂度过高的问题。
因此,要想真正用好用活动态规划,对于它的优化方法也是一定要掌握的。
优化动态规划的方法有许多,例如四边形不等式、斜率优化等。
但是这些方法只能对某些特定的动态规划算法进行优化,尚不具有普遍的意义。
本文将就《鹰蛋》这道题目做较为深入的分析,并从中探讨优化动态规划的本质思想与一般方法。
问题有一堆共M个鹰蛋,一位教授想研究这些鹰蛋的坚硬度E。
他是通过不断从一幢N层的楼上向下扔鹰蛋来确定E的。
当鹰蛋从第E层楼及以下楼层落下时是不会碎的,但从第(E+1)层楼及以上楼层向下落时会摔碎。
如果鹰蛋未摔碎,还可以继续使用;但如果鹰蛋全碎了却仍未确定E,这显然是一个失败的实验。
教授希望实验是成功的。
例如:若鹰蛋从第1层楼落下即摔碎,E=0;若鹰蛋从第N层楼落下仍未碎,E=N。
这里假设所有的鹰蛋都具有相同的坚硬度。
给定鹰蛋个数M与楼层数N。
NOI国家集训队论文分类(至2008)(摘抄自C博客)

摘抄自C博客组合数学计数与统计2001 - 符文杰:《Pólya原理及其应用》2003 - 许智磊:《浅谈补集转化思想在统计问题中的应用》2007 - 周冬:《生成树的计数及其应用》2008 - 陈瑜希《Pólya计数法的应用》数位问题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 - 李骥扬《线段跳表——跳表的一个拓展》SBT2007 - 陈启峰:《Size Balance Tree》线段树2004 - 林涛:《线段树的应用》单调队列2006 - 汤泽:《浅析队列在一类单调性问题中的应用》哈希表2005 - 李羽修:《Hash函数的设计优化》2007 - 杨弋:《Hash在信息学竞赛中的一类应用》Splay2004 - 杨思雨:《伸展树的基本操作与应用》图论图论2005 - 任恺:《图论的基本思想及方法》模型建立2004 - 黄源河:《浅谈图论模型的建立与应用》2004 - 肖天:《“分层图思想”及其在信息学竞赛中的应用》网络流2001 - 江鹏:《从一道题目的解法试谈网络流的构造与算法》2002 - 金恺:《浅谈网络流算法的应用》2007 - 胡伯涛:《最小割模型在信息学竞赛中的应用》2007 - 王欣上:《浅谈基于分层思想的网络流算法》2008 - 周冬《两极相通——浅析最大—最小定理在信息学竞赛中的应用》最短路2006 - 余远铭:《最短路算法及其应用》2008 - 吕子鉷《浅谈最短径路问题中的分层思想》2009 - 姜碧野《SPFA算法的优化及应用》欧拉路2007 - 仇荣琦:《欧拉回路性质与应用探究》差分约束系统2006 - 冯威:《数与图的完美结合——浅析差分约束系统》平面图2003 - 刘才良:《平面图在信息学中的应用》2007 - 古楠:《平面嵌入》2-SAT2003 - 伍昱:《由对称性解2-SAT问题》最小生成树2004 - 吴景岳:《最小生成树算法及其应用》2004 - 汪汀:《最小生成树问题的拓展》二分图2005 - 王俊:《浅析二分图匹配在信息学竞赛中的应用》Voronoi图2006 - 王栋:《浅析平面Voronoi图的构造及应用》偶图2002 - 孙方成:《偶图的算法及应用》树树2002 - 周文超:《树结构在程序设计中的运用》2005 - 栗师:《树的乐园——一些与树有关的题目》路径问题2009 - 漆子超《分治算法在树的路径问题中的应用》最近公共祖先2007 - 郭华阳:《RMQ与LCA问题》划分问题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 - 刘弈《浅谈信息学中状态的合理设计与应用》树形DP2007 - 陈瑜希:《多角度思考创造性思维——运用树型动态规划解题的思路和方法探析》优化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 - 骆可强《论程序底层优化的一些方法与技巧》语言C++2004 - 韩文弢:《论C++语言在信息学竞赛中的应用》策略策略2004 - 李锐喆:《细节——不可忽视的要素》2005 - 朱泽园:《回到起点——一种突破性思维》2006 - 陈启峰:《“约制、放宽”方法在解题中的应用》2006 - 李天翼:《从特殊情况考虑》2007 - 陈雪:《问题中的变与不变》2008 - 肖汉骏《例谈信息学竞赛分析中的“深”与“广”》倍增2005 - 朱晨光:《浅析倍增思想在信息学竞赛中的应用》二分2002 - 李睿:《二分法与统计问题》2002 - 许智磊:《二分,再二分!——从Mobiles(IOI2001)一题看多重二分》2005 - 杨俊:《二分策略在信息学竞赛中的应用》调整2006 - 唐文斌:《“调整”思想在信息学中的应用》随机化2007 - 刘家骅:《浅谈随机化在信息学竞赛中的应用》非完美算法2005 - 胡伟栋:《浅析非完美算法在信息学竞赛中的应用》2008 - 任一恒《非完美算法初探》提交答案题2003 - 雷环中:《结果提交类问题》守恒思想2004 - 何林:《信息学中守恒法的应用》极限法2003 - 王知昆:《浅谈用极大化思想解决最大子矩形问题》贪心2008 - 高逸涵《部分贪心思想在信息学竞赛中的应用》压缩法2005 - 周源:《压去冗余缩得精华——浅谈信息学竞赛中的“压缩法”》逆向思维2005 - 唐文斌:《正难则反——浅谈逆向思维在解题中的应用》穷举2004 - 鬲融:《浅谈特殊穷举思想的应用》目标转换2002 - 戴德承:《退一步海阔天空——“目标转化思想”的若干应用》2004 - 栗师:《转化目标在解题中的应用》类比2006 - 周戈林:《浅谈类比思想》分割与合并2006 - 俞鑫:《棋盘中的棋盘——浅谈棋盘的分割思想》2007 - 杨沐:《浅析信息学中的“分”与“合”》平衡思想2008 - 郑暾《平衡规划——浅析一类平衡思想的应用》。
2008年A题数学建模论文

承诺书我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。
如有违反竞赛规则的行为,我们将受到严肃处理。
我们参赛选择的题号是(从A/B/C/D中选择一项填写): A我们的参赛报名号为(如果赛区设置报名号的话):所属学校(请填写完整的全名):吉林师范大学参赛队员(打印并签名) :1. 宋关华2. 李婷婷3. 卢时伟指导教师或指导教师组负责人(打印并签名):滕飞日期: 2008 年 9 月 22 日赛区评阅编号(由赛区组委会评阅前进行编号):编号专用页赛区评阅编号(由赛区组委会评阅前进行编号):全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):数码相机定位摘要数码相机在计算机视觉中的应用逐渐普及和深入,在应用中数码相机的标定相当重要.本文根据数码相机的成像原理,由摄影几何学中的相关知识,提出了一种标定方法.将数码相机的成像过程转化为图像在四个坐标系的变换,实现了三个变换步骤,分别将世界坐标系中的信息转换到摄像机坐标系,再由摄像机坐标系转换到图像坐标系,最后由图像坐标系转换到像素坐标系.本文通过一台相机拍摄的二维图像,实现空间坐标系与像平面坐标的透视变换,设计了一种方法检验了建立的模型算法,模型具有较好的稳定性.同时完成了对双目标定的重构,给出了两部固定相机相对位置的数学模型和方法.1、对问题中给定的标定图像及由相机拍摄得到的图像,引入四个坐标系即世界坐标系、摄像机坐标系、图像坐标系、像素坐标系,由坐标系的转换关系得到确定像平面坐标的数学模型.通过对内部参数矩阵及外部参数矩阵的确定实现了以圆为标定图像时,圆心坐标的转换,得到了圆心在像坐标系的坐标,建立确定靶标上圆的圆心在像平面坐标的数学模型.2、由给定的像平面建立坐标系,确定各圆心的坐标,根据(1)的模型利用Matlab 编程解得投影矩阵M(即内外参数),再根据坐标于内外参数M的关系得到靶标上圆的圆心在像平面的坐标。
国家集训队2005论文集 杨俊

浅谈二分策略的应用华东师大二附中杨俊【摘要】本文着重讨论三种不同类型的二分问题,意在加深大家对二分的认识。
它们所考虑的对象从一般有序序列,到退化了的有序序列,最后到无序序列。
事实上它们也正代表了二分策略的三种不同应用。
【关键字】二分、序、应用【正文】“二分”,相信这个词大家都再熟悉不过了。
二分是一种筛选的法则,它源于一个很简单的想法——在最坏情况下排除尽可能多的干扰,以尽可能快地求得目标。
二分算法的高效,源于它对信息的充分利用,尽可能去除冗余,减少不必要的计算,以极大化算法效率。
事实上许多二分问题都可以用判定树或其它一些定理来证明,它达到了问题复杂度的下界。
尽管二分思想本身很简单,但它的扩展性之强、应用面之广,或许仍是我们所未预见的。
大家也看到,近年来各类竞赛试题中,二分思想的应用不乏令人眼前一亮的例子。
下面是作者归纳的二分思想的三种不同类型的应用,希望能让读者有所收获。
类型一:二分查找——应用于一般有序序列申明:这里所指的有序序列,并不局限于我们通常所指的,按从小到大或是从大到小排好序的序列。
它仅包含两层意思:第一,它是一个序列,一维的;第二,该序列是有序的,即序列中的任意两个元素都是可以比较的。
也就是拥有我们平时所说的全序关系。
虽说二分查找大家都再熟悉不过了,但这里还是先简要地回顾一下二分查找的一般实现过程:(1)确定待查找元素所在范围(2)选择一个在该范围内的某元素作为基准(3)将待查找元素的关键字与基准元素的关键字作比较,并确定待查找元素新的更精确的范围(4)如果新确定的范围足够精确,输出结果;否则转至(2)让我们看一个经典问题——顺序统计问题[问题描述]给定一个由n个不同的数组成的集合S,求其中第i小的元素。
[分析]相信大家对这个问题都很熟悉,让我们回顾一下二分查找是如何应用于该问题上的。
(1)确定待查找元素在S中(2)在n个元素中随机..取出一个记为x,将x作基准(3)设S中比元素x小的有p个。
国家集训队选拔考试

B K·CN
KC NA
·AM
MB
=
1.
②
①÷②得 B E·KC = EC·B K.
③
由梅涅劳·GD
EC FG DB
=
B E·CF·KC
EC FG B K
=
CF FG
.
所以 , CF[ (3 + 2 2) n - (3 - 2 2) n ] ( n ≥1) . 22
2 的子集排成一列 P1 , P2 , …, P2 n - n - 1 ,使得
| Pi ∩Pi + 1 | = 2 ( i = 1 ,2 , …,2 n - n - 2) .
(刘诗雄 提供)
五 、设 m 、n 都是大于 1 的给定整数 , aij
( i = 1 ,2 , …, n ; j = 1 ,2 , …, m) 是不全为 0 的
1
≡±1 (mod
q) .
由二项式定理得
q
∑ (3 + 2 2) q = Cqi ·3 q - i (2 2) i i =0
≡3 q + (2
2)
q
= 3q
+
2
q
·2
q
2
1
2
≡3 ±2 2 (mod q) .
②
因而 ,类似于式 ②的处理可得
(3 + 2 2) q2 ≡(3 ±2 2) q
≡3 + 2 2 (mod q) .
因为 q 是质数 ,所以 , d = 1 或 p.
若 d = 1 ,则 q| b1 = 2 ,这与假设不符. 故
d = p. 但 q| bq2 - 1 ,故由引理知 d| ( q2 - 1) ,即
高二数学矩阵的乘法

如果 c11 a11 b11 a12 b21 a13 b31
c12 a11 b12 a12 b22 a13 b32
c21 a21 b11 a22 b21 a23 b31
c22 a21 b12 a22 b22 a23 b32
1. 当矩阵A 的列数与矩阵B的行数相同时, 两矩阵可以相乘。 2. 若C=AB,则矩阵C中第i行第j列元素cij 是矩阵A第i个行向量与矩阵B的第j个 列向量的数量积。 3. 矩阵的乘法满足结合律和乘法对加法的分配律。 4. 一般情况下,矩阵的乘法不满足交换律和消去律。
1、必做题:练习册P47/3(2)(3),P48/5(2),P49/2 2、思考题:(A)练习册P50/4 (B)如果AB=BA,矩阵B就称为与A可交换,
解:甲同学的语文总评成绩为 800.3+700.3+750.4=75
乙同学的语文总评成绩为 900.3+700.3+800.4=80 丙同学的语文总评成绩为 600.3+800.3+900.4=78
75 C 80 78
我们还可以利用矩阵某种运算得到上述 总评成绩,这就是我们今天要学习的主题。
5. 进一步有
分配律 AB+AC=A(B+C) (A+B)C=AC+BC 结合律 (AB)C=A(BC)
a1 x b1 y c1 1、 将二元一次方程组 a 2 x b2 y c2 用矩阵的乘法运算来表示。
解:用矩阵乘法运算来表示:
a1 a 2
b1 x c1 b2 y c 2
求:(1)AB和BA;(2)AC和AD;(3)(BA)C和B(AC) (4)A(C+D)和AC+AD;
国家集训队2004论文集_林涛

线段树的应用广西柳铁一中林涛【摘要】在竞赛解题中,常遇到与区间有关的操作,比如统计若干矩形并的面积,记录一个区间的最值、总量,并在区间的插入、删除和修改中维护这些最值、总量。
线段树拥有良好的树形二分结构,能够高效的完成这些操作,本文将介绍线段树的各种操作以及一些推广。
本文通过3个例子:《蛇》、《空心长方体》、《战场统计系统》,讲述线段树中基本的插入、删除、查找操作,和不规则的修改和删除操作,以及到二维的推广。
关键字:线段树二分子树收缩叶子释放面积树【正文】1. 线段树的定义及特征定义1:线段树一棵二叉树,记为T (a,b),参数a,b表示该节点表示区间[a,b]。
区间的长度b-a记为L。
递归定义T[a,b]:若L>1 :[a, (a+b) div 2]为T的左儿子[(a+b) div 2,b]为T的右儿子。
若L=1 :T为一个叶子节点。
表示区间[1, 10]的线段树表示如下:(以下取对数后均向上取整)定理1:线段树把区间上的任意一条线段都分成不超过2log L条线段证明:(1)在区间(a,b)中,对于线段(c,d),如果(c<=a) 或(d>=b),那么线段在(a,b)中被分为不超过log(b-a)。
用归纳法证明,如果是单位区间,最多被分为一段,成立。
如果区间(a,b)的左儿子与右儿子成立,那么如果当c<=a时,1.若d<=(a+b)div2那么相当与其左儿子分该线段,所分该线段数树不超过log((a+b)div 2-a),即不超过log(b-a),成立。
2.若d>(a+b) div 2那么相当于该线段被分为它左儿子表示的线段,加上右儿子分该线段,线段数不超过1+log(b-(a+b) div 2),也不超过log(b-a),成立。
对于d>=b的情况证明类似,不再赘述。
(2)在区间(a,b)中,对于任意线段也用归纳法证明。
对于单位区间,最多分为一段,成立。
国家集训队2009论文集浅谈几类背包题

浅谈几类背包题浙江省温州中学徐持衡指导老师:舒春平2008年12月目录摘要 (3)关键字 (3)正文 (4)一、引言 (4)二、背包的基本变换 (5)①完全背包 (5)②多次背包 (5)③单调队列优化☆ (6)三、其他几类背包问题 (8)①树形依赖背包(获取学分)☆ (8)②PKU3093☆ (11)四、总结 (12)附录 (13)参考文献 (13)文中原题 (13)摘要背包问题作为一个经典问题在动态规划中是很基础的一个部分,然而以0-1背包问题为原题,衍生转变出的各类题目,可以说是千变万化,当然解法也各有不同,如此就有了继续探究的价值。
本文就4道背包变化的题做一些探讨研究,提出本人的一些做法,希望能起到抛砖引玉的作用。
关键字动态规划背包优化正文一、引言背包问题是运筹学中的一个经典的优化难题,是一个NP-完全问题,但其有着广泛的实际应用背景,是从生活中一个常见的问题出发展开的:一个背包,和很多件物品,要在背包中放一些物品,以达到一定的目标。
在信息学中,把所有的数据都量化处理后,得到这样的一个问题:0-1 背包问题:给定n 件物品和一个背包。
物品i的价值是W i,其体积为V i,背包的容量为C。
可以任意选择装入背包中的物品,求装入背包中物品的最大总价值。
在选择装入背包的物品时,对每件物品i ,要么装入背包,要么不装入背包。
不能将物品i 多次装入背包,也不能只装入部分物品i (分割物品i)。
因此,该问题称为0-1 背包问题。
用于求解0-1背包问题的方法主要有回溯算法、贪婪算法、遗传算法、禁忌搜索算法、模拟退火算法等。
在高中阶段,我们所谓的经典0-1背包问题,保证了所有量化后的数据均为正整数,即是一个特殊的整数规划问题,本文中如无特殊说明均以此为前提。
其经典的O(n*C)动规解法是:状态是在前i件物品中,选取若干件物品其体积总和不大于j,所能获得的最大价值为F i[j],当前的决策是第i件物品放或者不放,最终得到转移方程:F i[j] = F i-1[j] (V i>j>=0)F i[j] = max{ F i-1[j] , F i-1[j-V i]+W i } (C>=j>=V i)其中由于F i只与F i-1有关,可以用滚动数组来节省程序的空间复杂度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.3 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 图邻接矩阵上的乘法
9
3.1 沼泽鳄鱼 ZJTSC’05 . . . . . . . . . . . . . . . . . . . . . . . . . 9
t
(
)
以使用快速幂。朴素算法的时间复杂度是O N 3 log t ,其中N 表示M的大小
是N × N ,因为要计算M · M,M的大小不可能是a × b, a = b。本文中大部分
算法都需要使用到矩阵的快速幂。
4
2 优化动态规划
2.1 生成树计数 NOI’07
2.1.1 题目大意
一张无向图G有N
( N
5
2.1 生成树计数 NOI’07 . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 题目大意 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.2 分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
而且矩阵乘法满足结合律,即(AB) C = A (BC)。设A, B, C的大小分别为a × b, b × c, c × d,证明如下:
((AB) C) [i, j]
(
)
∑c ∑b
=
A [i, k] B [k, l] C [l, j]
l=1 k=1
∑b ∑c
=
A [i, k] B [k, l] C [l, j]
3.3 最小最大边路径问题 . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.1 描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.2 分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
≤
1015)个点,编号为i的点和j的点之间有边,当且仅
当|i − j| ≤ k (2 ≤ k ≤ 5)。给定N, k,求G的生成树的个数。
2.1.2 分析
题目中提供的求行列式的值的方法并没有利用到图的特殊性。一张图的一个
生成树就是这张图的一个无环子图,并且使所有点都连通。考虑到k的范围比
较小,每个点都只和附近的很少的点连边。于是可以使用状态压缩动态规划,
2.2 文本生成器 SPOJ1676 . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1 题目大意 . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2 分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
矩阵乘法在信息学中的应用
浙江省杭州二中 俞华程
摘要
矩阵在数学中应用很广,而在信息学中同样有很广的应用。本文将阐述 矩阵的乘法这一运算在三个方面的一些应用。
关键字:快速幂 矩阵乘法 优化动态规划 图的邻接矩阵 折半递归
目录
1 预备知识
3
1.1 矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 矩阵乘法
定义矩阵A,B。A和B可以作乘法操作当且仅当A的大小是a × b,B的大小 是b × c,其中a, b, c皆为正整数。设矩阵C = AB,则C的大小是a × c,且有
∑bቤተ መጻሕፍቲ ባይዱ
C [i, j] = A [i, k] B [k, j] (1 ≤ i ≤ a, 1 ≤ j ≤ c)
(1)
k=1
5
2.2 文本生成器 SPOJ16761
2.2.1 题目大意
给定N (1 ≤ N ≤ 10)个长度不超过6的单词,求由 包含至少一个给定单词的字符串有多少种,答案 mod
大10写00字7,母(组1 ≤成L长≤度1为06L)。的
2.2.2 分析
考虑到至少包含一个单词这个条件比较难处理,我们可以先求出总的单词数
4.1.2 分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.1.3 折半递归 . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.1.4 矩阵乘法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.3 一些拓展 . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1
4 矩阵乘法与折半递归
14
4.1 外星语言(TopCoder Algorithm SRM 377, Div 1, 1000) . . . . . . 14
4.1.1 题目大意 . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 奶牛接力 USACO’NOV07 . . . . . . . . . . . . . . . . . . . . . . 11
3.2.1 题目大意 . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.2 分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
a2,1
a2,2 ...
... ... ...
alk ,1
alk ,2 ...
a1,lk a2,lk . . . alk,lk
则Mi = Mi−1D,因为根据矩阵乘法的定义,有:
∑ lk Mi [1, j] = Mi−1 [1, t] · D [t, j]
t=1
即 上 面 的(4)式 。 先 搜 索 算 出aj,t 以 及Mk ( 我 还 尚 未 研 究 出 任 何 只 需 直 接 计 算化M 到O0 的(l优k3 美log方N法)。)通,过然搜后索使发用现矩lk阵=乘5法2,的这快个速复幂杂计度算完,全可可以以把接时受间。复杂度优
3.1.1 题目大意 . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.2 分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.3 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
说,这个复杂度还是不能够接受的,我们只能优化动态规划或者另辟蹊径了。
通过观察我们发现,当前面k个点的连通性相同的时候,无论当前是哪个点,
都是转移到编号比它大一的点,并且转移都是一样的。既然转移是一样的,能
否使用一个自动化的工具来快速进行转移呢?能!那就是矩阵。
设f [i] [j]表示现在是第i个点,前k个点的连通性状态是j,达到这种状态有
4.1.5 拓展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2 Dice Contest CEPC’03 . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2.1 题目大意 . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
∑
f [i] [a1] [a2] [a3] [a4] [a5] =
f [i + 1] [a2] [a3] [a4] [a5] [c] (5)
A ≤c≤ Z legal(a1 a2 a3 a4 a5 c)
态数其高中达leOga(lM(s)5表L)示。字即符使串预s处的理所了有l后ega缀l函均数不,是时题间目复中杂给度定还的是单有词O。(则M此6L算)(法M状表 示字母表的大小),这个复杂度根本无法接受。( )
(2)
k=1 l=1
(
)
∑b
∑c
= A [i, k] B [k, l] C [l, j]
k=1
l=1
= (A (BC)) [i, j]
而(AB) C和A (BC)的大小都是a × d,得证。 直接按照定义进行矩阵乘法时间复杂度是O (abc),其中a, b, c分别表示两
复个W 杂i矩杂度no阵度为gr大O约ad(小为N算是O3法)(a。,N×其2时.b8以他1间)。及有复b而杂一×现度些c约有。算为的将法O两算有(个法N更N中2低.3理6×的)。论N复的复杂矩杂度阵度,相最例乘低如,的S朴是tr素aCs算soepn法pe算的rs法时mi时间th间复—
1.2 矩阵乘法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 快速幂 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 优化动态规划