摘要:
1.前置知识 回文子串 回文的子串 最长回文子串 字符串中最长的回文子串 回文半径 设以 为中心的最大回文子串的长度为 ,则这个字符串第 位的回文半径为 2.算法流程 2.1 预处理 在处理回文子串(马拉车算法适用)的问题时,一般需要求出每一位的回文半径 阅读全文
摘要:
树 1 定义 1.1 树是什么 树是一种数据结构,因为形似倒着的树而得名. 1.2 树的定义 递归定义 1.2.1 有根树的定义 形象化的,如图1,有根树存在根节点这一定义,从根节点可以分出任意个分支,这任意个分支又可以继续细分,分出的节点称为“子节点”。 抽象化的,树也是 个节点和\(N- 阅读全文
摘要:
1.解释 如题,翻倍 优点:时间复杂度小 缺点:大多数情况下需要预处理,麻烦 2.步骤 1.翻倍 3.例题 题目:如何用尽可能少的砝码称量出 之间的所有重量? 方法:每次使用 的倍数做砝码的重量就可以了 答案: ( ) 4.技巧 这个 阅读全文
摘要:
1.解释 其实这个东西吧,是分治的分支 优点:时间复杂度低,十分简单,方便写,适用绝大多数题目 缺点:总有人眼瞎写错() 2.步骤 1.在序列中确定中间数 2.判断这数是不是, 的话去左边找,否则去右边找 3.重复步骤直到中间数是要求的数字 3.例题 题目:洛谷 P1873 方法:朴素算法查 阅读全文
摘要:
1.解释 把一个问题分解成多个不同子问题,当子问题可以迎刃而解时,整个问题也就迎刃而解 优点:可以将复杂的问题简单化,让问题更好解决 缺点:很容易扣细节就绕进去了,很难使人相信这东西的正确性 2.步骤 分而治之 1.尝试去分解问题(最难的一步) 2.不断分解直到没法继续分解 3.利用简单的求复杂的 阅读全文
摘要:
1.解释 按照题目中的步骤一步一步写 优点:不容易错,具有说服力,不容易证假 缺点:在题目复杂时极其容易出错 2.步骤 1.分析题意 2.标注步骤 3.开始写 3.例题 题目:一只长度不计的蠕虫位于 n 英寸深的井的底部。它每次向上爬 u 英寸,但是必须休息一次才能再次向上爬。在休息的时候,它滑落了 阅读全文
摘要:
1.解释 通俗来讲,枚举就是试,试出正确的结果。 优点:简便好写,思路好想 缺点:未经优化的枚举时间复杂度大,有时需要优化 2.步骤 1.确定枚举的条件(如值,范围) 2.通过循环与判断语句去判断是否符合条件 3.例题 题目:一个数组中的数互不相同,求其中和为 0 的数对的个数。 思路:挨个匹配尝试 阅读全文