06 2018 档案
摘要:引入闭合子图的概念 : 通俗点说就是选出一个图的子图,使得子图中的所有点出度指向的点依旧在这个子图内,则说明此子图是闭合子图。 最大权闭合子图 : 假设每个点具有点权值,在一个图的所有闭合子图中,点权之和最大的即是最大权闭合子图。 求取最大权闭合子图的权值之和是有一个结论的 一、先抽象出一个超级源、
阅读全文
摘要:题意 : 给出 N 个数、然后 M 个问询、问询格式是给出 ( L、R ) 然后需要根据规则变成新的 ( L'、R' ) [ 即此题强制在线了 ]、对于每个问询假设问询区间内有 X 个不同种类的数、每个数从左到右第一次出现的位置是 pos1、pos2... posX 然后要你给出 pos( (X+1
阅读全文
摘要:主席树是一种可持久化线段树、其发明者orz 黄嘉泰 拼音缩写与某届主席一样、于是这个数据结构被戏称为主席树。 所谓的“持久化数据结构”、就是保存这个数据结构的所有历史版本、同时利用它们之间的共用数据减少时间和空间的消耗。 由于线段树在区间长度固定的情况下结构都是一致的、主席树能够通过两颗线段树相减来
阅读全文
摘要:关于数位DP的学习推荐 ==> Click here #define LL long long LL int a[32]; LL dp[32][state]; /*不同题目状态不同*/ LL dfs(int pos, int state /*state变量*/ ,bool lead /*前导零*/
阅读全文
摘要:如果你了解过 01 Trie 和 可持久化线段树(例如 : 主席树 )、那么就比较好去可持久化 Trie 可持久化 Trie 当 01 Trie 用的时候能很方便解决一些原本 01 Trie 不能解决的一些问题 01 Trie 的经典贪心算法可以在一个数集里面找出某个数和 X 异或的最值 但若数集不
阅读全文
摘要:#include <bits/stdc++.h> using namespace std; class DividedByZeroException {}; class BigInteger { private: vector<char> digits; bool sign; // true for
阅读全文
摘要:莫队算法是由清华大学神牛莫涛发明的一种处理区间问题的离线算法 算法核心是通过先将问询区间总长度平方分块、然后将所有的问询区间按照左端点所在的块编号排序、在同一块内的则按右端点升序 然后设置左右两个下标指针、每次都移动两个指针指向问询块的左右端点、在移动的过程中不断维护答案。 可以证明原本只通过两个下
阅读全文
摘要:题目链接 题意 : 给出坐标轴上的 n 个点的横坐标,要你选出最多的点,使得这些点两两距离是二的幂 ( 特殊情况 : 选出的集合只有一个点也满足条件 ) 分析 : 官方题解已经说的很好了 最关键是是判断选出的集合元素数量肯定不可能大于 3 简单翻译一下题解就是 假设现有答案集合元素数量为 4 ,且令
阅读全文
摘要:LCA 有几种经典的求取方法、这里只给出模板,至于原理我完全不懂。 1、RMQ转LCA、复杂度O(n+nlog2n+m) 大致就是 DFS求出欧拉序 => 对欧拉序做ST表 => LCA(u, v) 即为 u、v 最先出现在欧拉序中的编号之间的最小值。 因为 LCA 的子树中必定有一个节点是 u,一
阅读全文