随笔分类 -  Algorithm

摘要:如何用Haskell写一颗红黑树 "同步更新于Candy?的新家" Candy?在上学期的数算课上学了红黑树,但是他一直没写过。 最近他入门了一下Haskell,得知用Haskell可以很方便实现各种树结构,于是就去学了一下如何用Haskell写红黑树,发现只要不到60行(包括空行和类型签名)! 下 阅读全文
posted @ 2020-02-11 17:55 Candy? 阅读(1334) 评论(0) 推荐(3) 编辑
摘要:Dancing Links 本周的AI引论作业布置了一道数独 加了奇怪剪枝仍然TLE的Candy?不得不去学了dlx dlxnb! Exact cover 设全集X,X的若干子集的集合为S。 精确覆盖 是指,选择一个S的子集S‘,满足X中的每一个元素在S’中恰好出现一次。 是一个NPC问题。 可以表 阅读全文
posted @ 2019-03-19 16:37 Candy? 阅读(713) 评论(0) 推荐(0) 编辑
摘要:本来是想写支持向量机的学习笔记的然后觉得内容太多了越写越不想写于是~~咕掉了~~。 把写好的拉格朗日乘子法发上来吧QwQ 拉格朗日乘子法 "wiki链接" 拉格朗日乘子法用来求解带多个 等式约束 的情况下的多元函数极值。 它将一个有 n 个变量与 m 个约束条件的最优化问题转换为一个解有 n + m 阅读全文
posted @ 2019-02-03 19:46 Candy? 阅读(825) 评论(2) 推荐(0) 编辑
摘要:K D Tree 学习笔记 最近看了一下k NN然后它说如果特征空间维数比较低的时候用K D Tree来求k近邻比较快所以就来补一下学OI时没学的K D Tree假装写一个学习笔记吧。 是什么? 是一个平衡二叉树 k=1的时候就是一只BST k 1的话,每一层换一维来分割 就是用许多垂直坐标轴的超平 阅读全文
posted @ 2019-02-01 19:58 Candy? 阅读(546) 评论(0) 推荐(1) 编辑
摘要:数据结构复习1 线段树、主席树、平衡树、树链剖分 update【2018.7.23】 我放弃指针版的了它欺负我呜呜呜 线段树 标记 多个标记考虑优先级 满足区间加法就可以用线段树 主席树 细节: x和y是节点编号,所以是root[i]不是i 每次复制原来的节点,再新建 平衡树 Treap 满足平衡树 阅读全文
posted @ 2018-07-21 17:54 Candy? 阅读(663) 评论(0) 推荐(1) 编辑
摘要:关于最小割问题的一点思考 再次明确定义 流网络定义在有向图上。无向图拆成有向图。然而不拆也可以。 最小割是一个边集(S,T),将点分成 S,T=VS 两个集合 最小割的容量c(S,T)=uSvTc(u,v) 所以删去割集中所有边后 阅读全文
posted @ 2018-07-18 16:29 Candy? 阅读(998) 评论(0) 推荐(1) 编辑
摘要:关于最短路、负环、差分约束系统的一点笔记 最短路 “可以”没有环,最多|V|1条边 有负环则不存在最短路 会形成最短路径树 算法 1. Dijkstra 贪心,当du是最小时要满足之后du不会更小,不能处理负权边 2. Bellman Ford 迭代n 1轮,用边松弛 3. spf 阅读全文
posted @ 2018-07-09 08:56 Candy? 阅读(631) 评论(0) 推荐(0) 编辑
摘要:关于最小生成树,拓扑排序、强连通分量、割点、2 SAT的一点笔记 前言:近期在复习这些东西,就xjb写一点吧。当然以前也写过,但这次偏重不太一样 MST 最小瓶颈路:u到v最大权值最小的路径。在最小生成树上。是次小生成树的一个子问题qwq 最小极差生成树:枚举最小生成树上的最小权值的大小 topo 阅读全文
posted @ 2018-07-08 11:27 Candy? 阅读(491) 评论(0) 推荐(0) 编辑
摘要:" 117. 欧拉回路" 在图中找一个环使得 每条边 都在环上出现恰好一次。 要注意的地方好多啊 每条边 恰好出现一次!!! 条件:每个点偶度 / 入度=出度 方法就是套圈法啦 然后本题自环是合法的,如果20000个(1,1)边的话会被卡成O(n2),所以加上当前弧优化 cpp include 阅读全文
posted @ 2017-05-15 15:48 Candy? 阅读(460) 评论(3) 推荐(0) 编辑
摘要:常系数齐次线性递推 具体记在笔记本上了,以后可能补照片,这里稍微写一下,主要贴代码。 概述 形式: hn=a1hn1+a2hn2+...+akhnk 矩阵乘法是O(k3logn) 利用特征多项式可以做到O(k2logn) 特征多 阅读全文
posted @ 2017-05-02 15:50 Candy? 阅读(694) 评论(0) 推荐(0) 编辑
摘要:"1598: [Usaco2008 Mar]牛跑步" 题意:k短路 ~~貌似A 的题目除了x数码就是k短路~~ f(x)=g(x)+h(x) g(x)为到达当前状态实际代价,h(x)为当前状态到目标状态的估计代价,需满足h(x) k短 阅读全文
posted @ 2017-04-30 18:19 Candy? 阅读(295) 评论(0) 推荐(0) 编辑
摘要:快速沃尔什变换 概述 用来解决一类与 位运算 有关卷积问题: Ci=jk=iAjBK 过程 具体看picks的博客和这两篇blog吧: "1" "2" 基础思想和fft类似,我们正变换求出一个类似点值表示的东西,然后用它直接乘,然后逆变换。 阅读全文
posted @ 2017-04-26 23:22 Candy? 阅读(702) 评论(0) 推荐(0) 编辑
摘要:形式幂级数 沉迷多项式,无法自拔... 不具体写了看笔记本,这里稍微记一下。 目录 1. 多项式的各种运算 2. 伯努利数 3. 拉格朗日反演 任意模数卷积 我的三模数ntt跑得好慢,然后 拆系数fft 跑的好快 设M=P,将整数表示成kM+b的形 阅读全文
posted @ 2017-04-21 16:48 Candy? 阅读(2780) 评论(2) 推荐(1) 编辑
摘要:高斯消元 & 线性基 本来说不写了,但还是写点吧 [update 2017 02 18]现在发现真的有好多需要思考的地方,网上很多代码感觉都是错误的,虽然题目通过了 [update 2017 02 19]加入线性基 [update 2017 03 31]完善内容,改用markdown Gauss E 阅读全文
posted @ 2017-04-01 21:48 Candy? 阅读(4534) 评论(0) 推荐(8) 编辑
摘要:快速傅里叶变换 & 快速数论变换 [update 3.29.2017] 前言 2月10日初学,记得那时好像是正月十五放假那一天 当时写了 "手写版的笔记" ~~过去近50天差不多忘光了~~,于是复习一下,具体请看手写版笔记 参考文献: "picks" "miskcoo" "menci" "阮一峰" 阅读全文
posted @ 2017-03-30 21:46 Candy? 阅读(7509) 评论(0) 推荐(1) 编辑
摘要:Lucas定理 [原文]2017 02 14 [update]2017 03 28 Lucas定理 计算组合数取模,适用于n很大p较小的时候,可以将计算简化到小于p (nm)modp, p is prime $ n= n_k p ^ k + n_{k 1} p 阅读全文
posted @ 2017-03-28 23:32 Candy? 阅读(3119) 评论(0) 推荐(3) 编辑
摘要:上下界网络流 前言 我花了几乎一个白天的时间来想为什么有源汇最大流求出的保证是原图的最大流...现在已经不想提这个东西了...简单记一下吧,乱七八糟的思考过程略去了 上下界网络流概述 网络流:满足容量限制和流量平衡 上下界网络流:同时有流量上界和流量下界 $$ \forall i \in V \{s 阅读全文
posted @ 2017-03-28 23:02 Candy? 阅读(414) 评论(0) 推荐(0) 编辑
摘要:Miller Rabin & Pollard rho 很久之前就学过了...今天重学一遍 利用费马小定理,但不能判断伪素数的情况 基于a的伪素数n: an11(modn) 如果对于所有与n互质的数都成立,则n为Carmichael数 定理: 对于质数p和$e \g 阅读全文
posted @ 2017-03-26 23:13 Candy? 阅读(419) 评论(0) 推荐(0) 编辑
摘要:容斥原理 与 莫比乌斯反演 今天(2.23.2017)翻了一下《组合数学》前6章,~~发现我之前一定是学了假的莫比乌斯反演~~,于是来新写一篇 容斥原理 定理 集合S中不具有性质Pi:1im的元素个数: Ai为具有性质Pi的集合 $ |S| \sum{|A_i 阅读全文
posted @ 2017-03-25 20:16 Candy? 阅读(5916) 评论(3) 推荐(9) 编辑
摘要:求解同余方程请看 http://www.cnblogs.com/candy99/p/5765986.html [2017 02 14 19:05] [2017 03 23 update]:看组合数学的时候发现了一个证明,记一下;改成了markdown Chinese Remainder Theore 阅读全文
posted @ 2017-03-23 09:27 Candy? 阅读(559) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示