
笔记
文章平均质量分 86
zhangche0526
退役OIer
展开
-
生成树计数(草稿)
生成树计数Kirchhoff 矩阵Matrix-Tree 定理原创 2017-05-11 11:48:10 · 405 阅读 · 0 评论 -
Pólya 定理(草稿)
Polya 定理Polya 定理常在算法竞赛中用于解决计数问题。 首先介绍一下理解此定理需要的数学基础:群给定集合 G={a,b,c,…}G=\{a,b,c,\dots\} 和集合 GG 上的二元运算 ∗* ,如果满足:运算 ∗* 是封闭的且是可结合的;存在单位元 ee 和逆元( aa 的逆元记为 a−1a^{-1} ),则称集合 GG 在运算 ∗* 下是一个群,记为 (G,∗)(G,*) 。置换原创 2017-05-28 23:38:43 · 1126 阅读 · 0 评论 -
基础动态规划
基础动态规划线性动规最短路径 pathsA Spy in the Metro小奇挖矿Remember the Word最优构造树树上动规软件安装柠檬当上了警察局长区间动规原创 2017-05-03 21:59:30 · 918 阅读 · 0 评论 -
图论中的二分
图论中的二分图论中最基础的算法是最短路,然而近些年在竞赛中已很少考最短路问题,许多图论题目往往是要求一种十分诡异的东西,这时候我们想直接求是不现实的,二分答案就应运而生了。原创 2017-04-30 09:07:50 · 1219 阅读 · 0 评论 -
线段树
线段树原创 2017-01-21 20:25:37 · 289 阅读 · 0 评论 -
弦图(草稿)
弦图与区间图1. 图论基本概念1.1 子图子图 subgraph图 G=(V,E)G=(V,E) ,则 G′=(V′,E′),V′⊆V,E′⊆EG'=(V',E'),V'\subseteq V,E'\subseteq E 为图 GG 的子图。诱导子图 induced subgraph图 G=(V,E)G=(V,E) ,则 G′=(V′,E′),V′⊆V,E′={(u,v)∣u,v∈V′,(u,v)∈原创 2017-07-24 16:05:10 · 711 阅读 · 0 评论 -
仙人掌相关问题的处理方法(未完待续)
仙人掌相关问题的处理方法如图所示:仙人掌图就是长得像仙人掌的图嘛(我真没看出哪里像了)定义:对一个无向连通图,任意一条边属于至多一个简单环。桥边:非环边,就是连接环的那些边;环边:就是环中的边嘛。在仙人掌上,父亲和儿子都有节点的和环的之分。DFS 树解决仙人掌 DP 问题仙人掌的处理是十分复杂的(本蒟蒻个人认为,神犇轻喷),这里先从简单的 DFS树开始。树边:DFS 树中存在的边非树边:D原创 2017-05-13 21:36:19 · 8204 阅读 · 4 评论 -
主席树
主席树主席树可以解决不适用结合律的区间问题(如区间第 KK 大,区间种类数),这些问题原本是需要繁琐的树套树,而有了主席树就简单很多了。主席树的中心思想是保留历史版本,最暴力的做法是没插入一个节点就新建一棵线段树,但这样会各种爆,其实我们可以只新建有更改的节点,然后直接连边到原来的节点即可。类比普通的线段树,主席树的插入顺序相当于普通线段树的位置,而主席树中的位置是维护的权值。例题[POJ2104]原创 2017-08-03 21:47:10 · 535 阅读 · 0 评论 -
树链剖分
树链剖分简介树链剖分适用于一些复杂的题目,可以较为充分获取树上的信息,将其转换为线性结构后可以很方便的使用线性数据结构进行处理。那么,树链剖分试讲一棵树如何转化为一条链的呢?之前有前序、中序、后序遍历,而树链剖分与前三种方式相似但不相同。首先,有两个重要的概念:对于一个节点,他的子节点的子树中节点数最多的是他的重儿子,相对地,其他节点成为此节点的轻儿子。对每个节点,我们遍历的时候首先到它的重儿子,在原创 2017-08-04 18:59:39 · 577 阅读 · 0 评论 -
线性基(草稿)
线性基所以说这种神玩意我怎么可能自己研究嘛,都是搬运的,出处详见参考资料1数学基础1.1 向量空间 vector space定义 (F,V,+,⋅)(F, V, +, \cdot) 为向量空间,其中 FF 为域, VV 为集合, VV 中元素称为向量, ++ 为向量加法, ⋅\cdot 为标量乘法,且运算满足 8 条公理(见维基百科)。1.2线性无关 linearly independent对于向原创 2017-07-28 07:08:46 · 491 阅读 · 0 评论 -
网络流
网络流原创 2017-02-22 22:27:47 · 487 阅读 · 0 评论 -
平衡树比较与应用
两种平衡树比较与应用原创 2017-06-19 15:48:44 · 1140 阅读 · 1 评论 -
点分治
点分治是树分治中应用最广泛的一种,常用于解决一类求树上满足条件的点对相关的问题,与其它的算法与数据结构结合后能解决多种类型的树上问题,可以说其作用媲美树链剖分。原创 2017-07-16 20:10:27 · 479 阅读 · 0 评论 -
Link-Cut Tree
Link-Cut Tree由于本文涉及的许多专有名词并没有统一的中文译名,所以本文译名与其他资料不尽相同,尽请谅解。概念 动态树问题, 即要求我们维护一个由若干棵子结点无序的有根树组成的森林. 要求这个数据结构支持对树的分割, 合并, 对某个点到它的根的路径的某些操作, 以及对某个点的子树进行的某些操作.Link-Cut Tree, LCT 是一种能快速解决动态树问题的数据结原创 2017-06-20 15:08:31 · 489 阅读 · 0 评论 -
最短路
最短路FloydDijkstraSPFA物流运输摧毁道路原创 2017-01-22 16:33:08 · 351 阅读 · 0 评论 -
后缀数组(未完待续)
后缀数组(Suffix Array, SA)是一种在字符串问题中很实用的工具,其主要作用是求多模板匹配和最长公共前缀(LCP)。原创 2017-06-07 22:05:23 · 607 阅读 · 0 评论 -
LCA
LCA原创 2017-01-22 16:45:23 · 443 阅读 · 0 评论 -
带权并查集
带权并查集[NOI2002] 银河英雄传说[POJ 2492] A Bug's Life[NOI2001] 食物链原创 2017-05-03 07:18:17 · 509 阅读 · 0 评论 -
对偶图及其应用
对偶图及其应用模型每个平面图 GG 都有一个与之对偶的平面图 G∗G∗ 有如下性质:G∗中的每个点对应 GG 中的一个面对于 GG 中的,每条边 ee ee 属于两个面 f1,f2f_1,f_2 ,加入边 (f∗1,f∗2)(f_1^*,f_2^*)ee 只属于一个面 ff ,加入回边 (f∗,f∗)(f^*,f^*)(图中加入了个绿色边围成的面,需要删除 s∗s原创 2017-05-11 08:01:12 · 9454 阅读 · 0 评论 -
字符串基础算法
TrieKMPACA原创 2017-04-22 20:47:55 · 484 阅读 · 1 评论 -
生成树相关问题
生成树相关问题原创 2017-02-18 11:32:22 · 622 阅读 · 1 评论 -
匈牙利算法
二分图的最大匹配、完美匹配和匈牙利算法转载 2017-02-15 20:24:06 · 833 阅读 · 0 评论 -
ST求RMQ
ST求RMQ原创 2017-02-12 20:21:09 · 350 阅读 · 0 评论 -
树上倍增
寒假集训第一天和最后一天分别考了这两道题,这两道题做法几乎完全一样,可谓首尾呼应,然而我还是没做对(捂脸),果然还是编程能力有问题。两道题做法均为先Kruskal求最大或最小生成树,之后被增求LCA,同时记录最值。所以说我是跟树上倍增有仇吗,今天又考了一道,树上倍增优化动规,然而我把状态转移方程写错了……原创 2017-02-10 09:24:32 · 515 阅读 · 0 评论 -
尺取法
POJ 3061 SubsequenceDescription:A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, and a positive integer S (S < 100 000 000) are given. Write a program to find the原创 2017-02-06 18:17:18 · 261 阅读 · 0 评论 -
快速幂及矩阵
快速幂及矩阵原创 2017-01-22 18:37:44 · 315 阅读 · 0 评论 -
高斯消元
高斯消元转载 2017-01-21 20:32:45 · 309 阅读 · 0 评论 -
堆
堆原创 2017-01-21 20:27:08 · 249 阅读 · 0 评论 -
树状数组
树状数组-模板-求逆序对原创 2017-01-21 10:12:01 · 366 阅读 · 0 评论 -
拓扑排序
拓扑排序原创 2017-01-20 19:00:35 · 286 阅读 · 0 评论 -
拓展欧几里得
辗转相除法拓展欧几里得算法例题:同余方程 Mod原创 2017-02-06 22:52:00 · 272 阅读 · 0 评论 -
FFT&NTT(草稿)
FFT(快速傅里叶变换, Fast Fourier Transformation)在算法竞赛中的主要应用是加速多项式运算。以多项式乘法为例:朴素算法需要 O(N^2) 的时间复杂度,而经过 FFT 优化后只需要 O(Nlog_2N) 的时间复杂度。数学基础FFT 作为一个数学算法,比起复杂的数据结构,其编程较为简单,但是它对于数学的要求比较高,要想理解此算法必须先有原创 2017-04-22 13:25:46 · 468 阅读 · 0 评论 -
计数与递推
基础组合数学理论应用[POJ1737]Connected Graph 给定 nn ,求有 nn 个节点的连通图个数。 n≤50n\leq 50直接计算答案并不容易,我们考虑求出所有的可能性后减去不连通的个数。设 f(n)f(n) 为 nn 个节点的连通图个数(答案), g(n)g(n) 为 nn 个节点的非连通图个数, h(n)h(n) 为 nn 个节点的图的个数。对于 h(n)h(原创 2017-08-02 11:02:28 · 903 阅读 · 0 评论