
算法简介
文章平均质量分 75
csyzcyj
这个作者很懒,什么都没留下…
展开
-
威尔逊定理 数论
最近在整理原来的一些资料,偶然想起原来搞OI时讲过一次威尔逊定理的内容,这里分享给大家目录一个实验证明剩余类与剩余系缩系证明题目推荐数论四大定理之一※是以英格兰数学家爱德华·华林的学生约翰·威尔逊命名的,尽管这对师生都未能给出证明。华林于1770年提出该定理,1773年由拉格朗日首次证明※威尔逊定理是判定一个自然数是否为素数的充分必要条件一个实验十八世纪中叶,一位英国法官约翰·威尔逊爵士,发现了数论中一种极为罕见的关系:取从1到某个质数...原创 2020-07-12 15:15:04 · 7863 阅读 · 2 评论 -
CDQ分治(含例题:货币兑换、PARTIAL ORDER)
最近在整理原来的一些资料,偶然想起原来搞OI时讲过一次CDQ分治的内容,这里分享给大家目录预备知识常见递归复杂度分治思想CDQ分治例题货币兑换PARTIAL ORDER问题2D版本问题3D版本问题4D简化版本问题4D版本问题100D版本总结题目推荐CDQ分治是一种特殊的分治方法,在OI界初见于陈丹琦2008年国家集训队作业中预备知识常见递归复杂度先来分析下面这个递归方程:其时间复杂度如何分析?将式子迭代两次得..原创 2020-07-12 14:47:32 · 888 阅读 · 0 评论 -
差分约束系统 讲解与例题分析
差分约束系统一:基础知识 如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如xj-xi 求解差分约束系统,可以转化成图论的单源最短路径(或最长路径)问题。 观察xj-xi 例如,考虑这样一个问题,寻找一个5维向量x=(xi)以满足: 这一问题等价于找出未知量xi,i=1,2,…,原创 2013-09-03 21:55:09 · 1439 阅读 · 0 评论 -
最大不相交区间求法分析(结合一道例题)
(题目为Codeforce 527D Clique Problem题解,戳此:点击打开链接)原创 2016-01-20 17:04:35 · 1760 阅读 · 0 评论 -
Tarjan求强连通分量的讲解与实现
昨天刚刚看了某大牛“有向图强连通分量的Tarjan算法”文章https://www.byvoid.com/zhs/blog/scc-tarjan>,然后参考“【强连通分量】图论复习(一)”文章选了RQNOJ480作为我写Tarjan的第一题http://blog.youkuaiyun.com/njlcazl/article/details/7734170>。感谢上述两篇文章的参考,原文链接已附在后面。一:原创 2013-08-13 08:52:32 · 1589 阅读 · 0 评论 -
polya定理
polya定理是组合数学中比较难的一部分。首先需要对置换群、集合论有一定的了解,这样有助于理解burnside引理的证明。其次,polya定理只 是对于在环上存在旋转、反射等等价的变换的一种计数方法,实际的题目中很多需要其他的知识来进行辅助。环上的计数主要就是处理置换 -> 着色这种情况。很关键的一点是同一循环内着色相同。因此很多题目就在置换和着色上下文章。最最简单的polya定理题目是置转载 2013-10-26 13:58:57 · 3056 阅读 · 0 评论 -
左偏树模板及题目推荐
左偏树模板及题目推荐【代码】://d[x] 距离最近外节点的距离//r[x] 右儿子//l[x] 左儿子//v[x] 值 int merge(int x,int y){ if(x==0) return y; //只剩某一子数(点)的情况 if(y==0) return x; if(v[x]<v[y]) sw原创 2013-09-07 14:40:38 · 2042 阅读 · 0 评论 -
博弈论习题分析
博弈论习题分析 推荐文章论文:http://wenku.baidu.com/view/b0a2421ca76e58fafab00359.html 一:URAL1180.取石子游戏1180.取石子游戏两个Nikifor在玩一个好玩的游戏。这里有一堆总数为n的石子。两个Nikifor轮流从石子堆中取石子。每一个人可以取任意2的非负整数次幂个石子。取到最原创 2013-09-07 14:34:19 · 1520 阅读 · 0 评论 -
01背包问题
01背包问题动态规划是用空间换时间的一种方法的抽象。其关键是发现子问题和记录其结果,然后利用这些结果减轻运算量。 比如01背包问题。 因为背包最大容量M未知。所以,我们的程序要从1到M一个一个的试。比如,开始任选N件物品的一个。看对应M的背包,能不能放进去,如果能放进去,并且还有多的空间,则,多出来的空间里能放N-1物品中的最大价值。怎么能保证总选择是最大价值呢?看原创 2013-09-07 14:26:32 · 895 阅读 · 0 评论 -
网络流DINIC增广路算法介绍
网络流DINIC增广路算法 【算法讲解】:首先构图,将节点间的容量和流量记录下。接下来,构建层次图,然后进行DINIC网络流算法,递归求增广路,只是更新的时候要判断是否初始点的d值+1等于到达点 【题目】:POJ1273与USACO 4.2.1 : USACO Training原创 2013-08-18 21:35:08 · 1059 阅读 · 0 评论 -
Tarjan离线算法求最近公共祖先(LCA)
Tarjan离线算法求LCA介绍 前言:首先,本人搞懂Tarjan求最近公共祖先(LCA),也是浏览了大量其他网友大牛的文章,若是看了本文仍未弄懂的,可以尝试自己做一下模板题(裸题)HDU2586,自己用数据去感受一下,或者可以换篇文章再看,或许他的文章更对你的“胃口”。一:概念介绍1:最近公共祖先原创 2013-08-18 21:18:07 · 9351 阅读 · 7 评论 -
算法简介—模拟退火算法
一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。 爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。如图1所示:假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜转载 2013-07-14 13:50:06 · 782 阅读 · 0 评论 -
算法简介—KMP配图详解
目录(?)[-]引记第一部分KMP算法初解第二部分next数组求法的来龙去脉与KMP算法的源码第三部分KMP算法的两种实现第四部分测试第五部分KMP完整准确源码第六部分一眼看出字符串的next数组各值相关链接后记 作者:July。出处:http://blog.youkuaiyun.com/v_JULY_v/。引记 此前一天,一位MS的朋友邀我一起去与他讨论转载 2013-07-14 13:53:59 · 958 阅读 · 0 评论 -
算法简介—堆与堆排序
目录(?)[+]二叉堆的定义堆的存储堆的操作插入删除堆的插入堆的删除堆化数组堆排序 堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值转载 2013-07-14 17:10:58 · 780 阅读 · 0 评论