05 2017 档案
摘要:DP,动态规划 树状数组 最长不下降子序列 by GeneralLiu 题目 就是说给一串由 0~9 组成的序列 求 以 i (1~n) 结尾 的 最长不下降子序列 的 和 (最长不下降子序列不唯一时选编号字典序最小的) 解 两步 1 求最长不下降子序列 2 求 步骤1 的和 1 O(n^2) 暴力
阅读全文
摘要:线段树 树的dfs序 来自 洛谷 P1982 的翻译 by GeneralLiu 来自 jzyz 的翻译 %mzx 线段树 dfs序 数据结构的应用 “数据结构 是先有需求 再有应用” by mzx 那么按照这个思路 先看看针对这道题 有什么需求 再考虑用什么数据结构去解决 以及怎么用该数据结构 这
阅读全文
摘要:单调队列 by GeneralLiu 滑动窗口是比较裸的单调队列 理想的正方形 就拔高了一个层次(多了一维) 有一个a*b的整数组成的矩阵 现请你从中找出一个n*n的正方形区域 使得该区域所有数中的最大值和最小值的差最小 只写MAX了,MIN一个道理,懒 不写了 先横着跑单调队列 维护许多长度为 n
阅读全文
摘要:单调队列 洛谷 P1886 滑动窗口 好像有个在洛谷上说 ”其实这道题应该叫滑稽窗口“的家伙 然后出于其他原因 成了封禁账户 by GeneralLiu 给出有n个数的序列 求所有的连续k个数 的最大值 以及 最小值 思路(就只写 MAX 了 , MIN 一个道理,懒得写了) 目标是 长度为k的窗口
阅读全文
摘要:by GeneralLiu NOIP2008 双栈排序 题目大意 给出一个1~n的排列 能否通过两个栈的出栈进栈操作 完成从大到小排序 如果不能 输出 0 能就 输出字典序最小的操作方案 (题目要求详情见洛谷链接 没错,就是上面那个) 假设现在你已经了解 题目的要求 以及细节 那我就在博客 try
阅读全文
摘要:by GeneralLiu 染色法 非常容易写 先记录边 遍历节点 如果没有深搜过 那深搜它就是了 并染色 染为 1 和 -1 如果染色冲突 则 return false 最后 return true 代码 #include<iostream> #include<cstdio> #include<c
阅读全文
摘要:by GeneralLiu tarjan 求 割点 割边 无向图 的 割点 割边: 对于无向连通图来说, 如果删除 一个点以及与它相连的边 之后, 使得这个图不连通, 那么该点为割点 ; 如果删除 一条边 之后 , 使得这个图不连通, 那么该边为割边 ; 对于无向连通图来说, 如果删除 一个点以及与
阅读全文
摘要:by GeneralLiu 一 开 始 学 tarjan 的 强连通分量 , 割边 , 割点 时 没有 学扎实 经过培训 ,发现了些 需要注意的 小细节 举个荔枝 dfs树 上的 边 学了 tarjan 的 应该有所体会 tarjian 算法 是基于 原图 的 dfs树 上的 下面就介绍一下我从此
阅读全文
摘要:算法学自 BYVoid https://www.byvoid.com/zhs/blog/scc-tarjan/ 这个写得很清楚了 当然 你可能不这么认为 而且 如果是让我 一开始就从这个博客 学 tarjan 缩点 估计我也会觉得 很难懂 我猜是 博客看多了 有了些基础 在看这一篇的时候懂了 就觉得
阅读全文
摘要:GeneralLiu 最短路 什么意思呢 其实就是字面意思喽 解法多样 就只介绍 SPFA 了 每次 用一个 "有意义" 的点 更新与之相连点 的 dis 值 (至于 dis[]数组 dis[i] 表示 源点 到 i 的最短 距离 , dis初始化无穷大) 每次 "有意义" 的更新 就把 被更新点
阅读全文
摘要:GeneralLiu 最小生成树 就是在一个 n 个点的连通图里 取 n-1 条边 使 n 个点 连通 并且 这 n-1 条边 的和 最小 如 红边 是 最小生成树 最小生成树 主要就是通过 下面的两种方法 Prim算法 和 Kruskal算法 来解决 然后 这两种算法 采用的思路 不同 但是 到达
阅读全文
摘要:GeneralLiu 橙边为轻边 红边为重边 绿数为每个点的 top 橙数为每个点的编号 步骤 1 先预处理 每个点的 deep深度 size子树大小 dad父节点 2 再预处理 每个点的 top重链顶点 3 就是跳了 应用 洛谷 P2912 [USACO08OCT] 牧场散步 效率蛮高的 此题中用
阅读全文
摘要:GeneralLiu 一种离线求最近公共祖先方法 “离线 即在有好多询问情况下 记录所有询问 一起处理,一起回答 相对的 在线 即在有好多询问情况下 每询问一次 处理一次,回答一次 ” 涉及并查集 这个博客,tarjan 写的很详细 步骤 1 从根开始 tarjan (或者说dfs) 2 每dfs到
阅读全文
摘要:GeneralLiu 近似二分思想 询问 x,y的 lca 设y更深 "假设有一个 dad[][] 数组 dad[x][j] 表示 x 的 2^j 级 祖先 例如 dad[x][0] 是 x 的 baba dad[x][1] 是 x 的 yeye (baba 的 baba) dad[x][2] 是
阅读全文
摘要:GeneralLiu 最近公共祖先 介绍我学习了的三种解法
阅读全文
摘要:GeneralLiu 1 邻接矩阵 bool/int map[MAXN][MAXN]; map[i][j]表示 i 到 j 是否连通 / 权值是多少 遍历 for() for() 遍历整个数组 2 链式前向星 一种把节点 u 所连的边集合 {E} “串成一条 “链” ” 的表示方法 int head
阅读全文