摘要: 位运算 bit是度量信息的单位,包含0和1两个状态。计算机的各种运算最后无不归结为一个个bit的变化。对于《算法竞赛进阶指南》的章节目录,是以0x00~0xFF这些由数组0~9与字母A~F表示的2位十六进制整数进行编号的,其中"0x"表示十六进制。第一章由0x00开始,前言分配序号0xFF,后记分配 阅读全文
posted @ 2018-06-27 19:31 YuWenjue 阅读(2595) 评论(0) 推荐(1) 编辑
摘要: 填一填之前没学或是没学好的 基本内容的话 1.倍增,ST算法 2.单调栈,单调队列 3.二进制状态压缩 倍增 倍增,就是“成倍增长”。指我们在进行递推时,如果状态空间很大,通常的线性递推无法满足时间与孔家复杂度的要求,那么我们可以通过成倍增长的方式,只递推状态空间中在2的整数次幂位置上的值作为代表。 阅读全文
posted @ 2018-05-18 14:25 YuWenjue 阅读(454) 评论(3) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-05-13 20:40 YuWenjue 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 颓了差不多一周后,决定重开DP 这一周,怎么说,学了学trie树,学了学二叉堆,又学了学树状数组,差不多就这样,然后和cdc一番交流后发现,学这么多有用吗?noip的范围不就是提高篇向外扩展一下,现在向下推进度,该不会写题还是不会,水平能有什么提高,应该老老实实看完DP的所有内容和图论的基本内容,再 阅读全文
posted @ 2018-05-13 20:20 YuWenjue 阅读(354) 评论(2) 推荐(0) 编辑
摘要: 动态规划的概念 动态规划算法把原问题视作若干个重叠子问题的逐层递进,每个子问题的求解过程都构成了一个“阶段”。在完成前一个阶段的计算后,动态规划才会执行下一个阶段的计算。 为了保证这些计算能够按顺序,不重复的进行,动态规划要求子问题不受后续阶段的影响,即:后续阶段的变化不会引起当前阶段求解的变动,换 阅读全文
posted @ 2018-04-23 21:05 YuWenjue 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 最长公共上升子序列LCIS,如字面意思,就是在对于两个数列A和B的最长的单调递增的公共子序列。 这道题目是LCS和LIS的综合。 在LIS中,我们通过两重循环枚举当序列以当前位置为结尾时,A序列中当前位置之前的数是否比当前位置的数大为条件,进行对于“最长上升子序列”的长度的转移。 方程简单的表示为: 阅读全文
posted @ 2018-04-23 12:58 YuWenjue 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 图论: 1.基本邻接表,邻接矩阵即其dfs,bfs 2.最短路: <1>floyed <2>dijlstra <3>bellman-ford <4>spfa 3.最小生成树: <1>prim <2>krusakl 字符串: 1.hash: <1>基本hash <2>字符型hash 2.KMP 3.最 阅读全文
posted @ 2018-04-17 18:22 YuWenjue 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 离散化:就是把无穷大集合中的若干个元素映射为有限集合以便于统计的方法。例如在很多情况下,问题的范围虽然定义在整数集合Z,但只涉及m个值,并且只与它们的相对顺序有关。此时我们可以把整数集Z中的这m个数与1~m建立映射关系。如果有一个空间复杂度与范围与Z相关的,离散之后就只与m相关了具体地说,我们把涉及 阅读全文
posted @ 2018-04-17 14:57 YuWenjue 阅读(134) 评论(0) 推荐(0) 编辑
摘要: HASH把复杂问题映射到一个容易维护的值域, 因为值域变简单, 范围变小, 可能会造成两个不同的值被hash函数映射到同一个值上,因此需要处理冲突情况开散列:建立一个邻接表结构,以hash函数的值域作为表头数组head, 映射后的值相同的原始信息被分在同一类, 构成一个链表接在对应的表头, 链表的节 阅读全文
posted @ 2018-04-16 18:04 YuWenjue 阅读(267) 评论(0) 推荐(0) 编辑
摘要: dfs序: 每个节点在dfs中的进出栈的时间序列。 树是非线性结构,根节点连着子节点,那么dfs序...节点进出栈的时间先后? 从根节点入栈,然后左儿子入栈,左儿子出栈,右儿子入栈,右儿子出栈,根节点出栈。 某节点的儿子在序列中的位置大于该节点入栈的位置小于该节点出栈的位置 这样就将一棵树变成了一个 阅读全文
posted @ 2018-04-02 21:39 YuWenjue 阅读(259) 评论(0) 推荐(0) 编辑