国家集训队2009论文集slide

合集下载

NOI国家集训队论文分类(至2008)(摘抄自C博客)

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 - 郑暾《平衡规划——浅析一类平衡思想的应用》。

算法合集之《组合游戏略述——浅谈SG游戏的若干拓展及变形》

算法合集之《组合游戏略述——浅谈SG游戏的若干拓展及变形》

1 2
《由感性认识到理性认识——透析一类搏弈游戏的解答过程 》 ,张一飞,国家集训队 2002 论文 《解析一类组合游戏》 ,.王晓珂,国家集训队 2007 论文 第 1 页 共 24 页
IOI2009 中国国家集训队论文
贾志豪 石家庄二中

每一个模型都有详细的证明。大多数人在学习信息学时存在的问题是 “知其然,不知其所以然” ,因为大多数的比赛模式是只要求结果而不 要求过程。但这会使我们对一个事物“只知表皮,不知深髓” ,如果将 一个我们知道的问题稍加变形的话,我们可能就不会了。这个问题在组 合游戏中体现得尤其突出。因此笔者对于文中的每一个定理都给出了证 明,希望读者对文中的思想“知其然,知其所以然” 。
1.4 定义 NIM-模型
为了不使读者对本篇论文失去兴趣,我特意将介绍取石子游戏的内 容换成小字,对这部分内容已经很熟悉的读者可以直接略过。
取石子游戏即著名的 nim 游戏,游戏规则如下: 桌子上有 N 堆石子,游戏者轮流取石子。 每次只能从一堆中取出任意数目的石子,但不能不取。 取走最后一个石子者胜。
IOI2009 中国国家集训队论文
贾志豪 石家庄二中
组合游戏略述 ——浅谈 SG 游戏的若干拓展及变形
石家庄二中 贾志豪
前言
组合游戏是近几年新兴起的博弈游戏, 随着张一飞学长关于组合游戏的论文 的面世, 组合游戏问题开始在国内信息学竞赛这片沃土上生根发芽,与大家一起 成长、成熟、成才。最为马上要离开高中信息学舞台的高三学生,我一直希望能 为学弟学妹们留下一些我自己的心得,于是这篇论文应运而生! ! ! 这篇论文的一些思想是我早在一年前节开始构思的, 感谢计算机学会为我提 供这样一个舞台, 能让我的论文为更多的人所知道;同时感谢在我写论文时无私 帮助过我的所有人,谢谢你们! ! ! 先介绍一下论文的主要内容:第一章作为论文的理论基础,主要从欣赏的角 度引入了 SG 函数、游戏图、NIM 游戏等概念,重点谈我对组合游戏尤其是 SG 函 数的体会、 理解; 第二章主要介绍了几种不同规则的组合游戏以及相应的应对策 略,旨在告诉读者,游戏规则变化之后,我们应该如何去分析新的规则、解决新 的模型;第三章主要介绍了几种竞赛中常见的组合模型,并将“她”们成功的转 化成了 NIM 模型。 鉴于这篇论文的内容较多, 在这里给读者提供一些阅读建议:第一章由于篇 幅原因,并没有给出 SG 函数、NIM 游戏解法的详细证明过程,对于刚刚接触组 合游戏的读者,建议先阅读一些关于 SG 函数的资料(张一飞关于博弈游戏的论 文1、王晓柯关于组合游戏的论文2就很不错) ,然后再从论文的第一章看起,相信 你一定会很有收获;第二、三章是论文的重头戏,如题目所言,分别谈 SG 游戏 的拓展和变形,对于钟情于组合游戏的读者,可以重点看一看第三章,相信一定 不会让你失望! ! ! 这篇论文主要有两个特点: 基本没有例题但处处是例子。为了让读者更好的理解论文中的思想,笔 者在选题目的时候刻意将题目的背景剥掉,只剩下一个“光溜溜 ”的数 学模型,这样读者在阅读论文时,就不必花精力去考虑背景向模型的转 化,可以全身心去理解笔者想要传达的思想。但读者不必去担心没有地 方练习,笔者将这几年的自己做过的组合游戏题收录在了论文的附录 里。

算法合集之《数学归纳法与解题之道》

算法合集之《数学归纳法与解题之道》

结构归纳法
结构归纳法是应用在数理逻辑、计算机科学、图论和一些其他数学领域中的一种特殊 化的数学归纳法,一般用来解决非线性问题。通俗地说,如果要证明的一组基于结构的命 题之间有一个“拓扑序”(通常定义为问题的规模),那么我们往往可以从空集出发进行 归纳证明或构造。例如,树形结构上我们每次去掉根将问题规约到几个较小的子问题,图 论算法中每次处理一条边就能不断减小问题的规模……如果对于一个规模足够小的问题我 们能够解决,我们就完美的解决了原问题。 不同于一般的数学归纳法,结构归纳法的正确性依赖于“最小数原理”的推广:假设 存在反例,那一定会有最小的反例,但是运用上述论证减小其规模可得一个反例,它的规 模比最小的反例更小,这样就产生了矛盾。因此假设不成立,结构归纳法是正确的。
基本的定理、概念与方法
第一数学归纳法
P 1 True 任意给定关于自然数的命题 P n ,若 ,那么,命题对所有 * P n P n 1 n N
自然数均成立。 形象地说, 如果把整个自然数集想象成一串多米诺骨牌, P 1 True 这个要求就推倒 了其中的第一块,因此有时被形象地称之为“奠基”;我们通常称为归纳的是其中证明
IOI2009 中国国家集训队论文 数学归纳法与解题之道 张昆玮
3
关于数学归纳法
简短的回顾
数学归纳法原理的发现可以追溯到公元 1494 年意大利数学家 Francesco Maurolico 的著作 Arithmeticorum libri duo。作为皮亚诺公理系统的应用,它自诞生之日就受到广 泛关注。同时,作为应对与正整数相关的问题的一种通用而简洁的处理方法,数学归纳法 在许多算术、逻辑问题的解决中都占有核心地位。即使是一些难于解决的问题,应用数学 归纳法大多可以化简问题描述,理清其本质,为接下来的解答铺平道路。 由于其固有的递归性,构造性和美学价值,数学归纳法是中学课本与学科竞赛中的热 门话题。特别地,信息学竞赛中的算术、逻辑、拓扑、数论以及组合数学相关的问题层出 不穷,我们有理由相信,数学归纳法,以及由数学归纳法衍生的结构归纳法等构造性证明 方法在信息学的算法设计中,同样会有其用武之地。

国家集训队2004论文集 栗师

国家集训队2004论文集 栗师
第 2 页 共 15 页
IOI2004 国家集训队论文 栗师
பைடு நூலகம்
21 41 4 -2 2 -2 输出样例 TAK NIE
2.1 确定算法模型。
看到题目,最 容易想 到的算法是广 搜。从当前已知能 够到达 的格子 出发 , 按照马的走法,扩展出另外一些能到达的格子,一直扩展下去,最后判断是不 是扩展完了所有的棋盘。 很快会 发现这 种做法是不行 的,棋盘上 格子的个数是无限的,不能 判断 能 够到达所有的格子。但这个困难马上就有了解决的办法,显然只要判断超级马 是否能到达开始点的 4 个相邻格。因为如果能够到达这 4 个格子,那么必然能 够到达棋盘上的任意一个位置。 问题解决了没 有?没 有。虽然最终 目标 只需要判断四 个格子 ,但是,它 在 走到这 4 个格子的过程中经过的点可能会有很多个。更糟糕的是,当问题无解 时,无法进行正确的判断,最后实现算法时造成死机。 如果把 无限的 棋盘变 成相当大的有界棋盘,看 它在这个有界 棋盘上能否 到 达这 4 个格子。但这仍然是无用功,这个有界棋盘会有很大,这样时间效率很 低,算法也缺乏证明。 尝试各种图论算法、 动态规划、贪心等 ,最后 都以意 料之中的结果—— 失 败而告终。 要得到高效的算法,似乎只有一条出路:数学思想。 要用数 学思想 解题, 先要建立数学 模型 。以超级马最 开始的 格子为 原点 建 立平面坐标系。然后把马的一种动作用一个平面向量 Pi 来表示,Pi=(xi,yi)。那 么,我们要判断,对于任意的 x,y,是否都存在一组 c1,c2,c3……cn(ci>=0,1≤i≤n), 使得 ∑ ci Pi = ( x, y ) 。
i=2 k k
所 以 存 在 整 数 序 列 d2,d3……dk 使
∑d g

国家集训队2009论文集后缀数组——处理字符

国家集训队2009论文集后缀数组——处理字符

后缀数组 罗穗骞
例 10:长度不小于 k 的公共子串的个数(pku3415) ……………23 2.4 多个字符串的相关问题 …………………………………………………23
例 11:不小于 k 个字符串中的最长子串(pku3294) ……………………24 例 12:每个字符串至少出现两次且不重叠的最长子串(spoj220)……24 例 13:出现或反转后出现在每个字符串中的最长子串(pku3294)……24 三、结束语 …………………………………………………………………………25 参考文献 ……………………………………………………………………………25 致谢 …………………………………………………………………………………25
目录
后缀数组 罗穗骞
摘要 …………………………………………………………………………………4 关键字 ………………………………………………………………………………4 正文 …………………………………………………………………………………4 一、后缀数组的实现 …………………………………………………………………4
符 串 r 的 从 第 i 个 字 符 开 始 的 后 缀 表 示 为 Suffix(i) , 也 就 是 Suffix(i)=r[i..len(r)]。
大小比较:关于字符串的大小比较,是指通常所说的“字典顺序”比较,也 就是对于两个字符串 u、v,令 i 从 1 开始顺次比较 u[i]和 v[i],如果 u[i]=v[i]则令 i 加 1,否则若 u[i]<v[i]则认为 u<v,u[i]>v[i]则认为 u>v (也就是 v<u),比较结束。如果 i>len(u)或者 i>len(v)仍比较不出结果,那 么 若 len(u)<len(v) 则 认 为 u<v , 若 len(u)=len(v) 则 认 为 u=v , 若 len(u)>len(v)则 u>v。

国家集训队1999论文集 来煜坤

国家集训队1999论文集 来煜坤

把握本质,灵活运用——动态规划的深入探讨浙江省萧山中学来煜坤【关键字】动态规划构思实现【摘要】本文讨论了动态规划这一思想的核心内容和其基本特点,探讨了动态规划思想的适用范围,动态规划子问题空间和递推关系式确立的一般思路。

通过例子说明在子问题确立过程中的一些问题的解决办法:通过加强命题或适当调节确定状态的变量等手段帮助建立动态规划方程,通过预处理使动态规划的过程容易实现等。

接着,分析动态规划实现中可能出现的空间溢出问题及一些解决办法。

总结指出,动态规划这一思想,关键还在于对不同的问题建立有效的数学模型,在把握本质的基础上灵活运用。

一、引言动态规划是一种重要的程序设计思想,具有广泛的应用价值。

使用动态规划思想来设计算法,对于不少问题往往具有高时效,因而,对于能够使用动态规划思想来解决的问题,使用动态规划是比较明智的选择。

能够用动态规划解决的问题,往往是最优化问题,且问题的最优解(或特定解)的局部往往是局部问题在相应条件下的最优解,而且问题的最优解与其子问题的最优解要有一定的关联,要能建立递推关系。

如果这种关系难以建立,即问题的特定解不仅依赖于子问题的特定解,而且与子问题的一般解相关,那么,一方面难以记录下那么多的“一般解”,另一方面,递推的效率也将是很低的;此外,为了体现动态规划的高时效,子问题应当是互相重叠的,即很多不同的问题共享相同的子问题。

(如果子问题不重叠,则宜使用其它方法,如分治法等。

) 动态规划一般可以通过两种手段比较高效地实现,其一是通过自顶向下记忆化的方法,即通过递归或不递归的手段,将对问题最优解的求解,归结为求其子问题的最优解,并将计算过的结果记录下来,从而实现结果的共享;另一种手段,也就是最主要的手段,通过自底向上的递推的方式,由于这种方式代价要比前一种方式小,因而被普遍采用,下面的讨论均采用这种方式实现。

动态规划之所以具有高时效,是因为它在将问题规模不断减小的同时,有效地把解记录下来,从而避免了反复解同一个子问题的现象,因而只要运用得当,较之搜索而言,效率就会有很大的提高。

国家集训队2007论文集7.胡伯涛《最小割模型

国家集训队2007论文集7.胡伯涛《最小割模型

[Key Words]
Network Flow, Maximum Flow, Minimum Cut, Maximum Weight Closure of a Graph, Finding
a Maximum Density Sub Graph, Minimum Weight Vertex Covering Set and Maximum Weight
第 2 页 共 45 页
[][Library]Thesis
最小割模型在信息学竞赛中的应用
Amber
3.1. 引入 Introduction...........................................................................................................16 3.2. 构造 Construction of Algorithm ....................................................................................17 3.3. 证明 Proof......................................................................................................................17 3.4. 应用 Application............................................................................................................19
knowledge of minimum cut model. The thesis sets focus on researching that is in four aspects: 1. the application based on the

国家集训队2009论文集浅谈几类背包题

国家集训队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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.
. . ... ... .. .. ..
3 4 5
另类欧几里得算法 连分数与Pell方程 例题—WiPlanet(TopCoder SRM 410 HARD) . .
.
.
.
.
.
.
总览
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得 WiPlanet 总结 感谢
. 论文内容 .. .. 1 欧几里得算法—辗转相除 .. 2 拓展欧几里得算法—模线性方程(组)
辗转相除 分析
对于任意两个数a, b满足a > b > 0,我们考虑如下这个语句 的效果 a a mod b (1)
a 如果b ≤ 2 ,则a mod b < b ≤ a 2
二维欧几里得 WiPlanet 总结 感谢
.
.
.
.
.
.
欧几里得算法
复杂度分析
欧几里得算法 的应用 金斌 总览 欧几里得算法
辗转相除 分析
对于任意两个数a, b满足a > b > 0,我们考虑如下这个语句 的效果 a a mod b (1)
a 如果b ≤ 2 ,则a mod b < b ≤ a 2 a 2 a = 2.
二维欧几里得 WiPlanet 总结 感谢
a 如果b > 2 ,则a mod b ≤ a b < a
.
.
.
.
.
.
二维欧几里得算法
分析 —两个结论 两
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得
开阔视野 题目 分析
. 结论 .. 如果a, b夹角大于 π ,则要求的答案就是min(|a|, |b|). 3 . .. . Proof. .. 令p = |a|, q = |b|,不妨设p ≤ q,则
WiPlanet 总结 感谢
a . . O . b .
.
.
.
.
.
.
.
二维欧几里得算法
分析
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得
开阔视野 题目 分析
觉得这样子过于简单了?
WiPlanet 总结 感谢
.
.
.
.
.
.
二维欧几里得算法
分析
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得
WiPlanet 总结 感谢
.
.
.
.
.
.
另类欧几里得算法
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得
开阔视野 题目 分析
WiPlanet 总结 感谢
容易想像,任何带"取模"操作并符合偏序的两个"数"都可以 运用欧几里得算法,比如多项式. 而我们似乎可以做得更多,比如将取模放大到矩阵的初等变 换,甚至是二维向量的操作.
.
. . ... ... .. .. ..
3 4 5
另类欧几里得算法 连分数与Pell方程 例题—WiPlanet(TopCoder SRM 410 HARD) . .
.
.
.
.
.
.
总览
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得 WiPlanet 总结 感谢
. 论文内容 .. .. 1 欧几里得算法—辗转相除 .. 2 拓展欧几里得算法—模线性方程(组)
所以至少本题的通解要包含普通欧几里得算法.
.
.
.
.
.
.
二维欧几里得算法
分析 —两个结论 两
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得
开阔视野 题目 分析
. 结论 .. 如果a, b夹角大于 π ,则要求的答案就是min(|a|, |b|). 3 . ..
. . .
WiPlanet 总结 感谢 Nhomakorabeaa 如果b > 2 ,则a mod b ≤ a b < a
可以看出,每次操作(1)都会将a减半,所以最后复杂度 是O(log n).
.
.
.
.
.
.
另类欧几里得算法
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得
开阔视野 题目 分析
容易想像,任何带"取模"操作并符合偏序的两个"数"都可以 运用欧几里得算法,比如多项式.
.
.
.
.
.
.
欧几里得算法
复杂度分析
欧几里得算法 的应用 金斌 总览 欧几里得算法
辗转相除 分析
对于任意两个数a, b满足a > b > 0,我们考虑如下这个语句 的效果 a a mod b (1)
a 如果b ≤ 2 ,则a mod b < b ≤ a 2 a 2 a = 2.
二维欧几里得 WiPlanet 总结 感谢
.
. . ... ... .. .. ..
3 4 5
另类欧几里得算法 连分数与Pell方程 例题—WiPlanet(TopCoder SRM 410 HARD) . .
.
.
.
.
.
.
总览
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得 WiPlanet 总结 感谢
. 论文内容 .. .. 1 欧几里得算法—辗转相除 .. 2 拓展欧几里得算法—模线性方程(组)
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得 WiPlanet 总结 感谢
. . ..
欧几里得算法的应用
. 金斌
江苏省常州高级中学
. .
2009 年 1 月
.
.
.
.
.
.
总览
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得 WiPlanet 总结 感谢
. 论文内容 .. .. 1 欧几里得算法—辗转相除 .. 2 拓展欧几里得算法—模线性方程(组)
WiPlanet 总结 感谢
.
.
.
.
.
.
二维欧几里得算法
分析 —Why Euclidean Algorithm??
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得
开阔视野 题目 分析
WiPlanet 总结 感谢
观察一个很特殊的情况:就是a及b共线. 很容易发现,最后 的答案实际上就是gcd(|a|, |b|),这启示我们,可能这道题目 和欧几里得算法有关. 进一步,考虑一个极端的情况,如下图,如果a与b的夹角很 小,足以忽略不计,那么实际上答案还是gcd(|a|, |b). . b . a .
.
.
.
.
.
.
.
辗转相除
伪代码
欧几里得算法 的应用 金斌 总览 欧几里得算法
辗转相除 分析
二维欧几里得 WiPlanet 总结 感谢
由于是数论的最基本算法,所以这里我直接给出伪代码: . . 伪代码 .. Input: x ≥ 0 ∧ y ≥ 0 Output: the greatest common divisor of x and y 1: while y = 0 do 2: t x mod y 3: x y 4: y t 5: end while . 6: return x .. .
WiPlanet 总结 感谢
.
.
.
.
.
.
.
二维欧几里得算法
题目
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得
开阔视野 题目 分析
. . 问题 (Maloyaroslavets Summer Camp 2008) .. 给出两个向量a, b,求整数x, y 满足不同时为0,使|ax + by |最 小. . .. . 考虑如下一张图,按a和b作为坐标轴画出的一幅图,很显 然,这道题目是要求该图中除了O之外的所有格点到O的最 小值.
.
.
.
.
.
.
.
欧几里得算法
复杂度分析
欧几里得算法 的应用 金斌 总览 欧几里得算法
辗转相除 分析
对于任意两个数a, b满足a > b > 0,我们考虑如下这个语句 的效果 a a mod b (1)
二维欧几里得 WiPlanet 总结 感谢
.
.
.
.
.
.
欧几里得算法
复杂度分析
欧几里得算法 的应用 金斌 总览 欧几里得算法
.
.
.
.
.
.
二维欧几里得算法
题目
欧几里得算法 的应用 金斌 总览 欧几里得算法 二维欧几里得
开阔视野 题目 分析
. . 问题 (Maloyaroslavets Summer Camp 2008) .. 给出两个向量a, b,求整数x, y 满足不同时为0,使|ax + by |最 小. . .. .
由于是数论的最基本算法,所以这里我直接给出伪代码: . . 伪代码 .. Input: x ≥ 0 ∧ y ≥ 0 Output: the greatest common divisor of x and y 1: while y = 0 do 2: t x mod y 3: x y 4: y t 5: end while . 6: return x .. .
.
. . ... ... .. .. ..
3 4 5
另类欧几里得算法 连分数与Pell方程 例题—WiPlanet(TopCoder SRM 410 HARD) . .
.
.
.
.
.
.
总览
相关文档
最新文档