枚举算法及其优化

引言:

总结一下这个简单的算法~

一、什么是枚举算法:

枚举算法很简单,就是将问题的所有可能列举出来,然后通过筛选,找出解,它的时间复杂度通常很大,在一些题目中可能会TLE,因此重要的是如何优化所写的枚举算法。

二、枚举算法优化的思路:

删除重复和不可能出现的情况。重复和不可能出现的情况都列出来,找到其中的规律。

三、经典例题:

我们上一道经典例题:

题目描述:有一个n×m 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。

输入格式:一行,两个正整数n,mn≤5000,m≤5000)。

输出格式:一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。

样例:输入——2 3 输出——8 10

我的最终代码:

第一次思路:

纯暴力枚举,确定一个矩形需要四个指针,四个指针可以确定长和宽长度,因此分别设为row(列底),pointr(列顶),col(行首),pointc(行尾),我用word文档以展示:

长就是pointc - col + 1,宽就是pointr - row + 1。

我们设a = pointr - row,b = pointc - col,注意,a和b并不是长和宽,而是长宽-1得到的,因此当长或宽为1时,代表的a和b是0.

只要判断他们相等是一个正方形。

在判断之前,我们通过找规律可以总结出一个n*m矩形的所有子矩形的公式:

oblong = ((1.0/2)*m*m+(1.0/2)*m)*((1.0/2)*n*n+(1.0/2)*n);

因此,只要将总子矩形个数减去正方形个数,就是除了正方形之外的长方形个数。

第一次暴力的代码,用了四个for,直接TLE了不少样例,只AC了3个。

第二次思路:

通过找规律,col值不变而pointc向右移动时,正方形只能出现一次,也就是一个col值只能有一个正方形,因此在第四个for,if判断找到正方形后,用break从col进入到col+1,代码只是多了一个break:

发现多AC了一个,但是还是有很多TLE了。

第三次思路:

通过找规律,我发现对于一个1*m的矩阵,1*1正方形有m个,那么在暴力枚举找这个1*1正方形时,就会重复枚举1*1正方形m次,能不能只需要枚举1次,就可以一次性找到m个1*1正方形?同理,对于,2*m矩阵,2*2正方形则有m-1个,能不能只需要枚举一次,就可以找到m-1个2*2正方形?

通过一一列举这些已经重复的情况,我们发现一个公式,列数m - 正方形长度 + 1 = 正方形个数。进一步化简,正方形个数x = m - a;

那么我们就可以通过列数的值,确定一个n*m长方形(n > m)的正方形个数,n*m长方形的n*n正方形个数x = m - a;a通过双指针pointr与row得到,因此可以将两个for省略,得到两个for的暴力枚举代码:

这时候就已经满足时间限制了,大大减少了时间复杂度,然而我还不是很满足,能不能做到一个for?

第四次思路:

仿照寻找重复性的优化思路,我发现在行的方向上也存在重复性,即一个7*6矩阵,分成7个1*6矩阵,那么这7个1*6矩阵的正方形个数是一样的,都是6个,同理,分成6个2*6矩阵,则2*2正方形个数也是一样的,是5个。那么,7*6就得到了7个1*6矩阵的总1*1正方形个数,6*5就得到了6个2*6矩阵的2*2正方形总个数,能不能通过一次枚举,枚举出一个1*6矩阵的1*1正方形个数,就可以得到7个1*6矩阵1*1正方形总个数?

我们发现只需要将1*6矩阵正方形个数乘以7就可以得到1*1正方形总个数,同理2*6矩阵。因此存在一个未知数times,times乘以1*6矩阵正方形个数就可以得到所有的1*1正方形个数,通过列出所有的重复情况,我们得到times = 行数n - a的结果。我们进行一个循环,让row一直在1位置,pointr从1到行数n,pointr和row的每个组合就是:1*6,2*6,3*6,4*6,5*6,6*6,7*6矩阵,可以分别找出所有的1*1,2*2,3*3,4*4,5*5,6*6正方形,于是就有了最上面第一个代码段的结果,只需要一个for就能找出所有的正方形。

看到这里你也很不容易,祝你学习快乐~喜欢的话欢迎点赞关注哦~

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
算法设计与分析》目录: 第一篇引入篇 第1章算法概述1.1用计算机求解问题与算法 1.1.1用计算机求解问题的步骤 1.1.2算法及其要素和特性 1.1.3算法设计及基本方法 1.1.4从算法到实现 1.2算法描述 1.2.1算法描述简介 1.2.2算法描述约定 1.2.3一个简单问题的求解过程 1.3现代常用算法概览* 1.3.1压缩算法 1.3.2加密算法 1.3.3人工智能算法 1.3.4并行算法 1.3.5其他实用算法 第2章算法分析基础 2.1算法分析体系及计量 2.1.1算法分析的评价体系 2.1.2算法的时间复杂性 2.1.3算法的空间复杂性 2.1.4NP完全性问题 2.2算法分析实例 2.2.1非递归算法分析 2.2.2递归算法分析 2.2.3提高算法质量 第二篇基础篇 第3章算法基本工具和优化技巧3.1循环与递归 3.1.1循环设计要点 3.1.2递归设计要点 3.1.3循环与递归的比较 3.2算法与数据结构 3.2.1原始信息与处理结果的对应存储 3.2.2数组使信息有序化 3.2.3数组记录状态信息 3.2.4大整数存储及运算 3.2.5构造趣味矩阵 3.3优化算法的基本技巧 3.3.1算术运算的妙用 3.3.2标志量的妙用 3.3.3信息数字化 3.4优化算法的数学模型 3.4.1杨辉三角形的应用 3.4.2最大公约数的应用 3.4.3公倍数的应用 3.4.4斐波那契数列的应用 3.4.5递推关系求解方程 习题 第三篇核心篇 第4章基本的算法策略4.1迭代算法 4.1.1递推法 4.1.2倒推法 4.1.3迭代法解方程 4.2蛮力法 4.2.1枚举法 4.2.2其他范例 4.3分治算法 4.3.1分治算法框架 4.3.2二分法 4.3.3二分法变异 4.3.4其他分治方法 4.4贪婪算法 4.4.1可绝对贪婪问题 4.4.2相对或近似贪婪问题 4.4.3贪婪策略算法设计框架 4.5动态规划 4.5.1认识动态规划 4.5.2动态规划算法设计框架 4.5.3突出阶段性的动态规划应用 4.5.4突出递推的动态规划应用 4.6算法策略间的比较 4.6.1不同算法策略特点小结 4.6.2算法策略间的关联 4.6.3算法策略侧重的问题类型 习题 第5章图的搜索算法 5.1图搜索概述 5.1.1图及其术语 5.1.2图搜索及其术语 5.2广度优先搜索 5.2.1算法框架 5.2.2广度优先搜索的应用 5.3深度优先搜索 5.3.1算法框架 5.3.2深度优先搜索的应用 5.4回溯法 5.4.1认识回溯法 5.4.2回溯法算法框架 5.4.3应用1——基本的回溯搜索 5.4.4应用2——排列及排列树的回溯搜索 5.4.5应用3——最优化问题的回溯搜索 5.5分支限界法 5.5.1分支搜索算法 5.5.2分支限界搜索算法 5.5.3算法框架 5.6 图的搜索算法小结 习题 第四篇应用篇 第6章算法设计实践6.1循环赛日程表 6.2求3个数的最小公倍数 6.3猴子选大王 6.4最大子段和问题 6.5背包问题 6.5.1与利润无关的背包问题 6.5.2与利润有关的背包问题
# 国家集训队论文列表(1999-2019) ___点击目录快速跳转:___ - _国家集训队论文列表(1999-2019)_ * [_1999_](#1999) * [_2000_](#2000) * [_2001_](#2001) * [_2002_](#2002) * [_2003_](#2003) * [_2004_](#2004) * [_2005_](#2005) * [_2006_](#2006) * [_2007_](#2007) * [_2008_](#2008) * [_2009_](#2009) * _2010~2012:组委会暂停论文答辩项目_ * [_2013_](#2013) * [_2014_](#2014) * [_2015_](#2015) * [_2016_](#2016) * [_2017_](#2017) * [_2018_](#2018) * [_2019_](#2019) - _论文分类汇总(1999-2009)_ * [组合数学](#组合数学) + [计数与统计](#计数与统计) + [数位问题](#数位问题) + [动态统计](#动态统计) + [博弈](#博弈) + [母函数](#母函数) + [拟阵](#拟阵) + [线性规划](#线性规划) + [置换群](#置换群) + [问答交互](#问答交互) + [猜数问题](#猜数问题) * [数据结构](#数据结构) + [数据结构](#数据结构-1) + [结构联合](#结构联合) + [块状链表](#块状链表) + [动态树](#动态树) + [左偏树](#左偏树) + [跳表](#跳表) + [SBT](#sbt) + [线段树](#线段树) + [单调队列](#单调队列) + [哈希表](#哈希表) + [Splay](#splay) * [图论](#图论) + [图论](#图论-1) + [模型建立](#模型建立) + [网络流](#网络流) + [最短路](#最短路) + [欧拉路](#欧拉路) + [差分约束系统](#差分约束系统) + [平面图](#平面图) + [2-SAT](#2-sat) + [最小生成树](#最小生成树) + [二分图](#二分图) + [Voronoi图](#voronoi图) + [偶图](#偶图) * [树](#树) + [树](#树-1) + [路径问题](#路径问题) + [最近公共祖先](#最近公共祖先) + [划分问题](#划分问题) * [数论](#数论) + [欧几里得算法](#欧几里得算法) + [同余方程](#同余方程) * [搜索](#搜索) + [搜索](#搜索-1) + [启发式](#启发式) + [优化](#优化) * [背包问题](#背包问题) * [匹配](#匹配) * [概率](#概率) + [概率](#概率-1) + [数学期望](#数学期望) * [字符串](#字符串) + [字符串](#字符串-1) + [多串匹配](#多串匹配) + [后缀数组](#后缀数组) + [字符串匹配](#字符串匹配) * [动态规划](#动态规划) + [动态规划](#动态规划-1) + [状态压缩](#状态压缩) + [状态设计](#状态设计) + [树形DP](#树形dp) + [优化](#优化-1) * [计算几何](#计算几何) + [立体几何](#立体几何) + [计算几何思想](#计算几何思想) + [圆](#圆) + [半平面交](#半平面交) * [矩阵](#矩阵) + [矩阵](#矩阵-1) + [高斯消元](#高斯消元) * [数学方法](#数学方法) + [数学思想](#数学思想) + [数学归纳法](#数学归纳法) + [多项式](#多项式) + [数形结合](#数形结合) + [黄金分割](#黄金分割) * [其他算法](#其他算法) + [遗传算法](#遗传算法) + [信息论](#信息论) + [染色与构造](#染色与构造) * [一类问题](#一类问题) + [区间](#区间) + [序](#序) + [系](#系) + [物理问题](#物理问题) + [编码与译码](#编码与译码) + [对策问题](#对策问题) * [优化](#优化-2) + [算法优化](#算法优化) + [程序优化](#程序优化) + [语言](#语言) * [策略](#策略) + [策略](#策略-1) + [倍增](#倍增) + [二分](#二分) + [调整](#调整) + [随机化](#随机化) + [非完美算法](#非完美算法) + [提交答案题](#提交答案题) + [守恒思想](#守恒思想) + [极限法](#极限法) + [贪心](#贪心) + [压缩法](#压缩法) + [逆向思维](#逆向思维) + [穷举](#穷举) + [目标转换](#目标转换) + [类比](#类比) + [分割与合并](#分割与合并) + [平衡思想](#平衡思想) Table of contents generated with markdown-toc --- ## 1999 陈 宏 -《数据结构的选择与算法效率——从IOI98试题PICTURE谈起》 来煜坤 -《把握本质,灵活运用——动态规划的深入探讨》 齐 鑫 -《搜索方法中的剪枝优化》 邵 铮 -《数学模型的建立、比较和应用》 石润婷 -《隐蔽化、多维化、开放化──论当今信息学竞赛中数学建模的灵活性》 杨 帆 -《准确性、全面性、美观性——测试数据设计中的三要素》 周咏基 -《论随机化算法的原理与设计》 ## 2000 陈 彧 《信息学竞赛中的思维方法》 方 奇 《动态规划》 高寒蕊 -《递推关系的建立及在信息学竞赛中的应用》 郭 一 -《数学模型及其在信息学竞赛中的应用》 江 鹏 -《探索构造法解题模式》 李 刚 -《动态规划的深入讨论》 龙 翀 -《解决空间规模问题的几种常用的存储结构》 骆 骥 -《数学模型的建立和选择》 施 遥 -《人工智能在围棋程序中的应用》 肖 洲 -《数据结构的在程序设计中的应用》 谢 婧 -《规模化问题的解题策略》 徐 串 -《论程序的调试技巧》 徐 静 -《图论模型的建立与转化》 杨江明 -《论数学策略在信息学问题中的应用》 杨 培 -《非最优化算法初探》 张 辰 -《动态规划的特点及其应用》 张 力 -《类比思想在解题中的应用》 张一飞 -《冗繁削尽留清瘦——浅谈信息的充分利用》 ## 2001 高寒蕊 -《从圆桌问题谈数据结构的综合运用》 符文杰 -《Pólya原理及其应用》 高 岳 -《中等硬度解题报告》 江 鹏 -《从一道题目的解法试谈网络流的构造与算法》 刘汝佳 -《搬运工问题的启示》 李益明 -《计算几何的相关问题》 李 源 -《树的枚举》 骆 骥 -《由"汽车问题"浅谈深度搜索的一个方面——搜索对象与策略的重要性》 毛子青 -《动态规划算法优化技巧》 俞 玮 -《基本动态规划问题的扩展》 张一飞 -《求N!的高精度算法》 ## 2002 戴德承 -《退一步海阔天空——"目标转化思想"的若干应用》 方 奇 -《浅谈必要条件的应用》 符文杰 -《排序网络》 何江舟 -《用高斯消元法解线性方程组》 何 林 -《猜想及其应用》 黄 芸 -《POI0110 跳舞蝇》 金 恺 -《浅谈网络流算法的应用》 李澎煦 -《半平面交的算法及其应用》 李 睿 -《二分法与统计问题》 骆 骥 -《浅析解 "对策问题" 的两种思路——从《取石子》问题谈起》 孙方成 -《偶图的算法及应用》 孙林春 -《让我们做得更好——从《Parity》的解法谈程序的优化》 王知昆 -《搜索顺序的选择》 许智磊 -《二分,再二分!――从Mobiles(IOI 2001)一题看多重二分》 杨旻旻 -《构造法——解题的最短路径》 张家琳 -《多项式乘法》 张 宁 -《遗传算法的特点及其应用》 张一飞 -《由感性认识到理性认识——透析一类搏弈游戏的解答过程》 周文超 -《树结构在程序设计中的运用》 ## 2003 方 奇 -《染色法和构造法在棋盘上的应用》 高正宇 -《答案只有一个——浅谈问答式交互问题》 何 林 -《一类称球问题的解法》 侯启明 -《信息论在信息学竞赛中的简单应用》 姜尚仆 -《模线性方程的应用——用数论方法解决整数问题》 金 恺 -《探寻深度优先搜索中的优化技巧——从正方形剖分问题谈起》 雷环中 -《结果提交类问题》 林希德 -《求最大重复子串》 刘才良 -《平面图在信息学中的应用》 刘一鸣 -《一类搜索的优化思想——数据有序化》 陆可昱 -《长方体体积并》 饶向荣 -《病毒的DNA——剖析一道字符匹配问题解析过程》 邵烜程 -《数学思想助你一臂之力》 王知昆 -《浅谈用极大化思想解决最大子矩形问题》 伍 昱 -《由对称性解2-SAT问题》 项荣璟 -《充分利用问题性质——例析动态规划的"个性化"优化》 许智磊 -《浅谈补集转化思想在统计问题中的应用》 张 宁 -《猜数问题的研究》 张云亮 -《论对算法的选择》 周 源 -《浅析"最小表示法"思想在字符串循环同构问题中的应用》 ## 2004 何 林 -《信息学中守恒法的应用》 胡伟栋 -《减少冗余与算法优化》 金 恺 -《极限法——解决几何最优化问题的捷径》 李锐喆 -《细节——不可忽视的要素》 鬲 融 -《浅谈特殊穷举思想的应用》 周 源 -《浅谈数形结合思想在信息学竞赛中的应用》 朱晨光 -《优化,再优化!》 肖 天 -《"分层图思想"及其在信息学竞赛中的应用》 汪 汀 -《最小生成树问题的拓展》 吴景岳 -《最小生成树算法及其应用》 栗 师 -《转化目标在解题中的应用》 薛 矛 -《解决动态统计问题的两把利刃》 黄源河 -《浅谈图论模型的建立与应用》 楼天城 -《匹配算法在搜索问题中的应用》 贝小辉 -《浅析树的划分问题》 林 涛 -《线段树的应用》 杨思雨 -《伸展树的基本操作与应用》 许智磊 -《后缀数组》 朱泽园 -《多串匹配算法及其启示》 韩文弢 -《论C++语言在信息学竞赛中的应用》 ## 2005 龙 凡 -《序的应用》 魏 冉 -《浅谈“跳跃表”的相关操作及其应用》 任 恺 -《图论的基本思想及方法》 杨 俊 -《二分策略在信息学竞赛中的应用》 张伟达 -《用改进算法的思想解决规模维数增大的问题》 黄 刚 -《数据结构的联合》 杨 弋 -《从“小H的小屋”的解法谈算法优化》 朱晨光 -《浅析倍增思想在信息学竞赛中的应用》 李羽修 -《Hash函数的设计优化》 王 俊 -《浅析二分图匹配在信息学竞赛中的应用》 唐文斌 -《正难则反——浅谈逆向思维在解题中的应用》 黄源河 -《左偏树的特点及其应用》 钱自强 -《遗传算法应用的分析与研究》 杨思雨 -《浅谈“黄金分割”和信息学的联系》 潘震皓 -《置换群快速幂运算研究与探讨》 胡伟栋 -《非完美算法在信息学竞赛中的应用》 何 林 -《数据关系的简化》 汪 汀 -《参数搜索的应用》 周 源 -《浅谈信息学竞赛中的“压缩法”》 朱泽园 -《回到起点 ----《一种突破性思维》 ## 2006 陈启峰 -《“约制、放宽”方法在解题中的应用》 陈首元 -《维护森林连通性——动态树》 冯 威 -《数与图的完美结合——浅析差分约束系统》 高逸涵 -《对于一道题目的深入分析》 胡伟栋 -《演讲的若干建议》 黄劲松 -《贪婪的动态规划》 黄晓愉 -《深度优先搜索问题的优化技巧》 贾 由 -《由图论算法浅析算法优化》 李天翼 -《从特殊情况考虑》 龙 凡 -《一类猜数问题的研究》 汤 泽 -《浅析队列在一类单调性问题中的应用》 唐文斌 -《“调整”思想在信息学中的应用》 汪 晔 -《信息学中的参考系与坐标系》 王 栋 -《浅析平面Voronoi图的构造及应用》 王 赟 -《Trie图的构建、活用与改进》 余远铭 -《最短路算法及其应用》 俞 鑫 -《棋盘中的棋盘——浅谈棋盘的分割思想》 周戈林 -《浅谈类比思想》 周以苏 -《论反汇编在时间常数优化中的应用》 朱晨光 -《基本数据结构在信息学竞赛中的应用》 朱泽园 -《半平面交的新算法及其实用价值》 ## 2007 高逸涵 -《与圆有关的离散化》 王晓珂 -《解析一类组合游戏》 仇荣琦 -《欧拉回路性质与应用探究》 余江伟 -《如何解决动态统计问题》 杨 沐 -《浅析信息学中的“分”与“合”》 李宇骞 -《浅谈信息学竞赛中的线性规划——简洁高效的单纯形法实现与应用》 袁昕颢 -《动态树及其应用》 杨 哲 -《凸完全单调性的加强与应用》 王欣上 -《浅谈基于分层思想的网络流算法》 陈启峰 -《Size Balanced Tree》 杨 弋 -《Hash在信息学竞赛中的一类应用》 古 楠 -《平面嵌入》 郭华阳 -《RMQ与LCA问题》 刘雨辰 -《对拟阵的初步研究》 陈 雪 -《问题中的变与不变》 何 森 -《浅谈数据的合理组织》 胡伯涛 -《最小割模型在信息学竞赛中的应用》 陈瑜希 -《多角度思考创造性思维——运用树型动态规划解题的思路和方法探析》 周 冬 -《生成树的计数及其应用》 刘家骅 -《浅谈随机化在信息学竞赛中的应用》 ## 2008 曹钦翔 -《数据结构的提炼与压缩》 郑 暾 -《平衡规划——浅析一类平衡思想的应用》 刘 弈 -《浅谈信息学中状态的合理设计与应用》 顾 研 -《浅谈随机化思想在几何问题中的应用》 周梦宇 -《码之道——浅谈信息学竞赛中的编码与译码问题》 肖汉骏 -《例谈信息学竞赛分析中的“深”与“广”》 方 戈 -《浅析信息学竞赛中一类与物理有关的问题》 吕子鉷 -《浅谈最短径路问题中的分层思想》 周小博 -《浅谈信息学竞赛中的区间问题》 俞华程 -《矩阵乘法在信息学中的应用》 程芃祺 -《计算几何中的二分思想》 高逸涵 -《部分贪心思想在信息学竞赛中的应用》 **陈丹琦 -《基于连通性状态压缩的动态规划问题》** 张煜承 -《一类算法复合的方法》 陈瑜希 -《Pólya计数法的应用》 余林韵 -《运用化归思想解决信息学中的数列问题》 任一恒 -《非完美算法初探》 高亦陶 -《从立体几何问题看降低编程复杂度》 **苏 煜 -《对块状链表的一点研究》** 周 冬 -《两极相通——浅析最大—最小定理在信息学竞赛中的应用》 ## 2009 武 森 -《浅谈信息学竞赛中的“0”和“1”》 **贾志豪 -《组合游戏略述——浅谈SG游戏的若干拓展及变形》** 徐持衡 -《浅谈几类背包题》 骆可强 -《论程序底层优化的一些方法与技巧》 刘 聪 -《浅谈数位类统计问题》 **李骥扬 -《线段跳表——跳表的一个拓展》** 汤可因 -《浅析竞赛中一类数学期望问题的解决方法》 徐源盛 -《对一类动态规划问题的研究》 张昆玮 -《数学归纳法与解题之道》 漆子超 -《分治算法在树的路径问题中的应用》 罗穗骞 -《后缀数组——处理字符串的有力工具》 **方展鹏 -《浅谈如何解决不平等博弈问题》** 姜碧野 -《SPFA算法优化及应用》 **毛杰明 -《母函数的性质及应用》** 董华星 -《浅析字母树在信息学竞赛中的应用》 梅诗珂 -《信息学竞赛中概率问题求解初探》 高逸涵 -《数位计数问题解法研究》 周而进 -《浅谈估价函数在信息学竞赛中的应用》 金 斌 -《欧几里得算法的应用》 曹钦翔 -《从“k倍动态减法游戏”出发探究一类组合游戏问题》 ## 2010~2012:组委会暂停论文答辩项目 ## 2013 彭天翼 -《登顶计划》 王康宁 -《方格取数》 罗 干 -《Two strings 试题讨论》 张闻涛 -《Catch The Penguins》 罗剑桥 -《浅谈分块思想在一类数据处理问题中的应用》 乔明达 -《搜索问题中的meet in the middle技巧》 胡渊鸣 -《浅析信息学竞赛中概率论的基础与应用》 许昊然 -《浅谈数据结构题的几个非经典解法》 陈立杰 -《重量平衡树和后缀平衡树在信息学奥赛中的应用》 高胜寒 -《浅谈环状计数问题》 王子昱 -《分块方法的应用》 王 迪 -《浅谈容斥原理》 ## 2014 王子昱 -《MSS 命题报告》 余行江 -《矩阵 命题报告》 董宏华 -《多变的多边形》 岑若虚 -《对置换群有关算法的初步研究》 匡正非 -《浅谈线性相关》 张恒捷 -《关于三维最小乘积生成树的一些研究》 徐 毅 -《浅谈回文子串问题》 梁泽宇 - 《浅谈维护多维数组的方法在数据结构题中的应用》 **王悦同 -《根号算法——不只是分块》** **黄志翱 -《浅谈动态树的相关问题及简单拓展》** **胡泽聪 -《随机化算法在信息学竞赛中的应用》** **何 琦 -《精细地实现程序——浅谈OI竞赛中的常数优化》** **沈 洋 -《回归本源——位运算及其应用》** **俞鼎力 -《寻找第 k 优解的几种方法》** ## 2015 刘研绎 -《后缀自动机在字典树上的拓展》 **任之洲 -《浅谈启发式思想在信息学竞赛中的应用》** 王鉴浩 -《浅谈字符串匹配的几种方法》 张天扬 -《后缀自动机及其应用》 金 策 -《生成函数的运算与组合计数问题》 刘剑成 -《YDC的奖金命题报告》 邹逍遥 -《浅谈分块在一类在线问题中的应用》 王逸松 -《仙人掌相关算法及其应用》 陈胤伯 -《浅谈图的匹配算法及其应用》 陈思禹 -《浅谈信息学竞赛中的物理问题》 于纪平 -《丢失的题面命题报告》 张恒捷 -《DP的一些优化技巧》 杜瑜皓 -《Product命题报告》 卢啸尘 -《关于以源代码为输入的一类问题的初步探索》 吕凯风 -《集合幂级数的性质与应用及其快速算法》 ## 2016 **任之洲 -《积性函数求和的几种方法》** **姜志豪 -《网络流的一些建模方法》** 董克凡 -《浅谈线性规划与对偶问题》 王文涛 -《浅谈无向图最小割问题的一些算法及应用》 邹逍遥 -《浅谈线性规划在信息学竞赛中的应用》 **吉如一 -《区间最值操作与历史最值问题》** **毛 啸 -《再探快速傅里叶变换》** **罗哲正 -《从Unknown谈一类支持末尾插入删除的区间信息维护方法》** 洪华敦 -《小C的后缀数组命题报告》 张浩威 -《消消看 命题报告》 李子豪 -《《strakf》命题报告》 汪文潇 -《《过去的集合》命题报告》 **吴作凡 -《火车司机出秦川 命题报告》** 金 策 -《基础排序算法练习题》 袁宇韬 -《move命题报告》 ## 2017 毛 啸 -《关于数列递归式的一些研究》 **杨家齐 -《基于线性代数的一般图匹配》** 袁宇韬 -《多项式求和》 **钟知闲 -《浅谈信息学竞赛中的独立集问题》** 陈俊锟 -《“神奇的子图”命题报告及其拓展》 孙耀峰 -《动态传递闭包问题的探究》 汪乐平 -《“A+B Problem”命题报告》 **徐明宽 -《非常规大小分块算法初探》** 翁文涛 -《回文树及其应用》 闫书弈 -《“黑白树”命题报告》 杨景钦 -《“正多边形”命题报告》 冯 哲 -《浅谈决策单调性动态规划的线性解法》 沈 睿 -《“被操纵的线段树”命题报告》 赵晟宇 -《计算机逻辑与艺术初探——基于逻辑的钢琴演奏音符力度模型》 洪华敦 -《“基因组重构”命题报告》 ## 2018 杨懋龙 - 《浅谈生成函数在掷骰子问题上的应用》 陈江伦 - 《“后缀树结点数”命题报告及一类区间问题的优化》 高睿泉 - 《浅谈保序回归问题》 吴瑾昭 - 《“Fim 4”命题报告》 任轩笛 - 《解决树上连通块问题的一些技巧和工具》 梁晏成 - 《“Jellyfish”命题报告及拓展探究》 王思齐 - 《LeafyTree及其实现的加权平衡树》 陈嘉乐 - 《“小H爱染色”命题报告》 朱震霆 - 《一些特殊的数论函数求和问题》 刘承奥 - 《浅谈DFT在信息学竞赛中的应用》 林旭恒 - 《“完美的队列”命题报告》 杨乾澜 - 《浅谈拟阵的一些拓展及其应用》 董炜隽 - 《浅谈Splay与Treap的性质及其应用》 何中天 - 《“最小方差生成树”命题报告》 陈 通 - 《欧拉图相关的生成与计数问题探究》 ## 2019 钟子谦 - 《两类递推数列的性质和应用》 王修涵 - 《浅谈图模型上的随机游走问题》 杨骏昭 - 《“小水题”命题报告》 高嘉煊 - 《浅谈图的点着色问题》 戴 言 - 《浅谈格路计数相关问题》 李佳衡 - 《算法竞赛中一些数论问题的推广与高斯整数初探》 范致远 - 《“基础圆方树练习题”命题报告》 徐翊轩 - 《“整点计数”命题报告以及对高斯整数的若干研究》 张哲宇 - 《浅谈树上分治算法》 吴思扬 - 《“组合数求和”命题报告》 王思齐 - 《浅谈一类简洁数据结构》 陈孙立 - 《子串周期查询问题的相关算法及其应用》 吴作同 - 《“公园”命题报告》 孔朝哲 - 《浅谈可追溯化数据结构》 袁方舟 - 《浅谈杨氏矩阵在信息学竞赛中的应用》 ## 推荐文章 许智磊 -《后缀数组》 罗穗骞 -《后缀数组——处理字符串的有力工具》 朱泽园 -《半平面交的新算法及其实用价值》 胡伯涛 -《最小割模型在信息学竞赛中的应用》 方展鹏 -《浅谈如何解决不平等博弈问题》 陈丹琦 -《基于连通性状态压缩的动态规划问题》 贾志豪 -《组合游戏略述——浅谈SG游戏的若干拓展及变形》 武 森 -《浅谈信息学竞赛中的“0”和“1”》 李骥扬 -《线段跳表——跳表的一个拓展》 周 源 -《浅析"最小表示法"思想在字符串循环同构问题中的应用》 高逸涵 -《数位计数问题解法研究》 张昆玮 -《数学归纳法与解题之道》 漆子超 -《分治算法在树的路径问题中的应用》 俞华程 -《矩阵乘法在信息学中的应用》 陈瑜希 -《Pólya计数法的应用》 # 论文分类汇总(1999-2009) ## 组合数学 ### 计数与统计 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 - 李骥扬《线段跳表——跳表的一个拓展》 ### SBT 2007 - 陈启峰:《Size Balance Tree》 ### 线段树 2004 - 林涛:《线段树的应用》 ### 单调队列 2006 - 汤泽:《浅析队列在一类单调性问题中的应用》 ### 哈希表 2005 - 李羽修:《Hash函数的设计优化》 2007 - 杨弋:《Hash在信息学竞赛中的一类应用》 ### Splay 2004 - 杨思雨:《伸展树的基本操作与应用》 ## 图论 ### 图论 2005 - 任恺:《图论的基本思想及方法》 ### 模型建立 2004 - 黄源河:《浅谈图论模型的建立与应用》 2004 - 肖天:《“分层图思想”及其在信息学竞赛中的应用》 ### 网络流 2001 - 江鹏:《从一道题目的解法试谈网络流的构造与算法》 2002 - 金恺:《浅谈网络流算法的应用》 2007 - 胡伯涛:《最小割模型在信息学竞赛中的应用》 2007 - 王欣上:《浅谈基于分层思想的网络流算法》 2008 - 周冬《两极相通——浅析最大—最小定理在信息学竞赛中的应用》 ### 最短路 2006 - 余远铭:《最短路算法及其应用》 2008 - 吕子鉷《浅谈最短径路问题中的分层思想》 2009 - 姜碧野《SPFA算法优化及应用》 ### 欧拉路 2007 - 仇荣琦:《欧拉回路性质与应用探究》 ### 差分约束系统 2006 - 冯威:《数与图的完美结合——浅析差分约束系统》 ### 平面图 2003 - 刘才良:《平面图在信息学中的应用》 2007 - 古楠:《平面嵌入》 ### 2-SAT 2003 - 伍昱:《由对称性解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 - 刘弈《浅谈信息学中状态的合理设计与应用》 ### 树形DP 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 - 杨弋:《从的解法谈算法优化》 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 - 郑暾《平衡规划——浅析一类平衡思想的应用》

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值