![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
知识点
文章平均质量分 60
mosquito_zm
这个作者很懒,什么都没留下…
展开
-
用 STL vector 来创建二维数组
以前我要建立一个二维数组,总是使用 int N=5, M=6; vector > Matrix(N); for(int i =0; i Matrix[i].resize(M); } 上面多写了三行,就是为了指定 Matrix 的烈数。 今天才发现,可以用更简单的方法完成上面的工作 下面的一行就可以代替上面的四行 vector > Matrix(N, vect转载 2018-01-28 11:53:45 · 268 阅读 · 0 评论 -
数位dp总结 之 从入门到模板
来源:http://blog.csdn.net/wust_zzwh/article/details/52100392基础篇数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位、百位、千位......数的每一位就是数位啦!之所以要引入数转载 2017-07-17 13:56:08 · 515 阅读 · 0 评论 -
字符串:KMP Eentend-Kmp 自动机 trie图 trie树 后缀树 后缀数组
涉及到字符串的问题,无外乎这样一些算法和数据结构:自动机KMP算法Extend-KMP 后缀树 后缀数组 trie树trie图及其应用。当然这些都是比较高级的数据结构和算法,而这里面最常用和最熟悉的大概是kmp,即使如此还是有相当一部分人也不理解kmp,更别说其他的了。当然一般的字符串问题中,我们只要用简单的暴力算法就可以解决了,然后如果暴力效率太低,就用个hash。当然hash也是一个面试中经常转载 2017-07-17 13:49:35 · 514 阅读 · 0 评论 -
约数个数与具体值的求解
1:求一个数的约数个数:由约数个数定理可知,对于一个大于1正整数n可以分解质因数: 则n的正约数的个数就是 。其中a1、a2、a3…ak是p1、p2、p3,…pk的指数。2 求1到n的所有数的约数个数: 按顺序考虑每一个质数p及他们的次方,对于任意一个数y = p^w * x, 则他应当新增的因子数为w * (x的因子数)。先筛出素数,再按照枚举的方法原创 2017-07-21 19:29:58 · 637 阅读 · 1 评论 -
子图、生成子图、导出子图和主子图
所有的顶点和边都属于图G的图称为G的子图。含有G的所有顶点的子图称为G的生成子图。 设V1是V的一个非空子集,以V1为顶点集,以两端点均在V1中的边的全体为边集的子图称为G的导出子图,记作G[V1]。导出子图G[V\V1]记为G-V1,它是从G中删去V1中的顶点以及与这些顶点相关的边所得到的子图。若V1={v},则把G-{v}简记为G-v, 称为主子图。在图1-13中,G1是G的生成子图转载 2017-07-28 14:20:52 · 18754 阅读 · 0 评论 -
鸽巢原理以及Ramsey定理详解
简单形式:[plain] view plain copy print?定理:如果有n+1个物体被放进n个盒子,那么至少有一个和紫包含两个或者更多的物体。 定理非常的简单,但是真正用好这个定理却需要一定的功底。eg1.以为国际象棋大师有11周的时间备战一场锦标赛,他决定每天至少下一盘国际象棋,但是为了不使自己过于疲劳,他转载 2017-08-19 21:17:32 · 9535 阅读 · 3 评论 -
三个重要的同余式——威尔逊定理、费马小定理、欧拉定理 + 求幂大法的证明
一、威尔逊定理若p为质数,则p|(p-1)!+1亦:(p-1)! ≡ p-1 ≡ -1(mod p)例题:HDU 2973 YAPTCHA (威尔逊定理及其逆定理)解题报告见http://blog.csdn.net/synapse7/article/details/18728157二、费马小定理假如p是质数,且转载 2017-08-12 22:07:57 · 450 阅读 · 0 评论 -
欧拉定理 & 费马定理吗 & 欧几里得 & 扩展欧几里得
(一)欧拉定理:互质:若N个整数的最大公因数是1,则称这N个整数互质。 在数论中,欧拉定理,(也称费马-欧拉定理)是一个关于同余的性质。欧拉定理表明,若n,a为正整数,且n,a互质,则: a^[φ(n)]≡1 (mod n)其中: φ函数的值 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1转载 2017-08-12 21:19:48 · 409 阅读 · 0 评论 -
扩展欧拉定理
扩展欧拉定理ab≡⎧⎩⎨⎪⎪ab%ϕ(p) gcd(a,p)=1ab gcd(a,p)≠1,bϕ(p)ab%ϕ(p)+ϕ(p) gcd(a,p)≠1,b≥ϕ(p) (mod p)证明转载自http://blog.csdn.net/synapse7/article/details/19610361转载 2017-08-12 21:44:20 · 329 阅读 · 0 评论 -
线性求区间欧拉函数(顺便线性求区间内所有素数)(类似欧拉线性素数筛)
该算法在可在线性时间内筛素数的同时求出所有数的欧拉函数。 需要用到如下性质(p为质数): 1. phi(p)=p-1 因为质数p除了1以外的因数只有p,故1至p的整数只有p与p不互质 2. 如果i mod p = 0, 那么phi(i * p)=p * phi(i) 证明如下 (上述证明存在bug转载 2017-08-11 20:49:34 · 519 阅读 · 0 评论 -
sw算法求最小割学习(*)
http:// blog.sina.com.cn/s/blog_700906660100v7vb.html转载:http://www.cnblogs.com/ylfdrib/archive/2010/08/17/1801784.html【ZZ】最小割集Stoer-Wagner算法一个无向连通网络,去掉一个边集可以使其变成两个连通分量则这个边集就是割集;最小割集当然转载 2017-08-11 16:50:05 · 554 阅读 · 0 评论 -
C++11中的匿名函数(lambda函数,lambda表达式)
转载自:http://www.cnblogs.com/pzhfei/archive/2013/01/14/lambda_expression.html这篇文章是根据维基百科整理来的,原文请看:http://en.wikipedia.org/wiki/Anonymous_function#C.2B.2B C++11提供了对匿名函数的支持,称为Lambda函数(也叫Lambda表达式转载 2017-08-11 13:18:02 · 225 阅读 · 0 评论 -
动态规划优化整理
1.四边形优化 m(i, j)状态方程满足:i i = j: 0i > j: INF对于i 令s(i, j)为对应决策变量的最大值,即m(i, j)通过s(i, j)达到最优, 并且s(i, j)最大s(i, j) = MAX(i如果m(i, j)满足四边形定理, 则s(i, j) 于是m(i, j) = MIN(s(i, j-1) 2.斜率优化此处以d转载 2017-07-07 13:25:25 · 306 阅读 · 0 评论 -
ACM中常用算法—-字符串
ACM中常用的字符串算法不多,主要有以下几种:Hash字典树KMPAC自动机manacher后缀数组EX_KMPSAM(后缀自动机)回文串自动机下面来分别介绍一下:0. Hash字符串的hash是最简单也最常用的算法,通过某种hash函数将不同的字符串分别对应到不同的数字.进而配合其他数据结构或STL可以做到判重,统计,查询等操作.#### 字符串的hash转载 2017-07-17 14:13:00 · 619 阅读 · 0 评论 -
范德蒙恒等式的证明
今天我们来认识组合数学中一个重要的恒等式---范德蒙恒等式。这个恒等式的表述如下 很自然的公式,接下来一起来看看它的证明,在维基百科上给出了两种方法证明,分别如下 (1)组合方法证明 甲班有个同学,乙班有个同学,从两个班中选出个一共有种不同的选法。而换一种思维方式 从甲班中选取个转载 2017-07-28 14:36:17 · 1430 阅读 · 0 评论 -
树链剖分
“在一棵树上进行路径的修改、求极值、求和”乍一看只要线段树就能轻松解决,实际上,仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——树链剖分。 树链,就是树上的路径。剖分,就是把路径分类为重链和轻链。 记siz[v]表示以v为根的子树的节点数,dep[v]表示v的深度(根深度为1),top[v]表示v所在的重链的顶端节点,fa[v]表示v的父亲,son[v]表示转载 2017-11-20 15:03:09 · 150 阅读 · 0 评论 -
五分钟搞懂后缀数组!后缀数组解析以及应用(附详解代码)
为什么学后缀数组后缀数组是一个比较强大的处理字符串的算法,是有关字符串的基础算法,所以必须掌握。 学会后缀自动机(SAM)就不用学后缀数组(SA)了?不,虽然SAM看起来更为强大和全面,但是有些SAM解决不了的问题能被SA解决,只掌握SAM是远远不够的。 ……有什么SAM做不了的例子? 比如果求一个串后缀的lcp方面的应用,这是SA可以很方便的用rmq来维护,但是SAM转载 2017-11-20 14:32:45 · 606 阅读 · 1 评论 -
扩展欧几里德算法求解线性同余方程
欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) 证明:a可以表示成a = kb + r,则r = a mod b 假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r 因此d是(b,a mod b)的公约数转载 2017-08-30 22:40:47 · 305 阅读 · 0 评论 -
LCA 最近公共祖先 Tarjan(离线)算法的基本思路及其算法实现
LCA 最近公共祖先Tarjan(离线)算法的基本思路及其算法实现 小广告:METO CODE 安溪一中信息学在线评测系统(OJ) //由于这是第一篇博客..有点瑕疵...比如我把false写成了flase...看的时候注意一下! //还有...这篇字比较多 比较杂....毕竟是第一次嘛 将就将就 后面会转载 2017-08-29 14:10:57 · 339 阅读 · 1 评论 -
Catalan数,第一类Stirling数和第二类Stirling数
第一类Stirling数 s(p,k) s(p,k)的一个的组合学解释是:将p个物体排成k个非空循环排列的方法数。 s(p,k)的递推公式: s(p,k)=(p-1)*s(p-1,k)+s(p-1,k-1) ,1边界条件:s(p,0)=0 ,p>=1 s(p,p)=1 ,p>=0递推关系的说明:考虑第p个物品,p可以单独转载 2017-03-29 18:27:50 · 4497 阅读 · 0 评论 -
错排公式详解
在HDU刷题时遇到了关于错排公式的一些问题。本篇文章将详细解释错排公式的推导过程,请大家点赞。错排的定义:一段序列中一共有n个元素,那么可知这些元素一共有n!种排列方法。假如在进行排列时,原来所有的元素都不在原来的位置,那么称这个排列为错排。而错排数所指的就是在一段有n个元素的序列中,有多少种排列方式是错排。递归关系:D(n)=(n-1)(D(n-1)+D(n-2)) 特别地有D转载 2017-08-26 00:10:03 · 2322 阅读 · 1 评论 -
【莫比乌斯反演】关于ΣΦ(d|n)=n和Σμ(d|n)=0(*)
首先先推第一个∑d|nϕ(d)=n我是这样想的每一个数字都可以分解为多个素数的乘积,那么n=Pa11×Pa22......Pakk假设这个时候我们将n乘Pk那么就变成了n=Pa11×Pa22......Pak+1k我们发现对于n来说其他的不是Pk的因数完全没有收到影响,那么其他的没有Pk的就可以表示为f(n)=∑d|n∑t|d,t|Pkμ(t转载 2017-08-22 20:53:46 · 869 阅读 · 0 评论 -
威尔逊定理与逆定理及证明
威尔逊定理:当( p -1 )! ≡ -1 ( mod p ) 时,p为素数。证明如下充分性:当p不是素数,那么令p=a*b ,其中1 (1)若a≠b, 因为(p-1)!=1*2*...*a*...*b*...*p-1, 所以(p-1)!≡ 0 (mod a) (转载 2017-08-13 10:14:16 · 6550 阅读 · 2 评论 -
求一个图中的最大团(全连通分量) n = 40 (中途相遇法)
先给出一个图,求图中的最大团,n = 40,应该怎么求呢?我们可以使用中途相遇法,将原有的40个点分为两部分,每部分各20个点。在此之后,我们可以先对前20个点求出暴力求出所有团。设dp[mask]表示当前选择点的状态为mask(状态压缩)时的最大团数量。则在求整体最大团时,若得到后20个点中的当前团为p,找到在前二十个点中所有与p中所有点都有边的点集q,则maxc = max(max原创 2017-08-14 23:16:46 · 1916 阅读 · 0 评论 -
勒让德定理
在正数n!的素因子标准分解式中,素数p的指数记作 ,则 .证明:转载 2017-08-07 15:56:00 · 1919 阅读 · 0 评论 -
[组合数]求组合数的几种方法总结
求C(n,m)%mod的方法总结1.当n,m都很小的时候可以利用杨辉三角直接求。 C(n,m)=C(n-1,m)+C(n-1,m-1);2.利用乘法逆元。 乘法逆元:(a/b)%mod=a*(b^(mod-2)) mod为素数。 逆元可以利用扩展欧几里德或欧拉函数求得: 1).扩展欧几里德:b*x+p*y=1 有解,x就是所求 2).费马小定理:b^(p-1)=转载 2017-07-28 15:38:59 · 833 阅读 · 0 评论 -
线段树详解 (原理,实现与应用)
线段树详解By 岩之痕目录:一:综述二:原理三:递归实现四:非递归原理五:非递归实现六:线段树解题模型七:扫描线八:可持久化 (主席树)九:练习题一:综述假设有编号从1到n的n个点,每个点都存了一些信息,用[L,R]表示下标从L到R的这些点。线段树的用处就是,对编号连续的一些点进行修改或者统计操作,修改转载 2017-08-04 09:30:21 · 255 阅读 · 0 评论 -
LCA实现的三种不同的方法
LCA,最近公共祖先,实现有多种不同的方法,在树上的问题中有着广泛的应用,比如说树上的最短路之类。LCA的实现方法有很多,比如RMQ、树链剖分等。今天来讲其中实现较为简单的三种算法:RMQ+时间戳、树上倍增(类似二分步长)、Tarjan算法(DFS+并查集)。【RMQ+时间戳】什么是时间戳?时间戳,就是被访问到的一个次序。比如说我们首先对一棵树进行深搜,在深搜中访问的相应次序就转载 2017-08-04 09:09:16 · 448 阅读 · 0 评论 -
莫队讲解
因为学校的小朋友不知道莫队是什么……所以就写了这个普及向……没有什么东西……会的话就不用看了……因为是在学校用记事本写的……所以求和符号没有用latex……手画2333对于一些特殊的数据结构题……比如询问序列中区间[l,r]的什么东西,如果我们已经知道了[l,r]的答案,那么就能在O(1)或O(lgn)的时间得到[l,r+1]或[l-1,r]的答案而且允许离转载 2017-02-18 16:22:19 · 265 阅读 · 0 评论 -
康托展开是怎么来的?
康托展开是怎么来的?很显然,康托展开是本文的关键所在。你说康托他老人家当初是怎么想出来这种展开的方法的呢?我们还是以 s=["A", "B", "C"] 为例:A B C | 0A C B | 1B A C | 2B C A | 3C A B | 4C B A | 5 他的思路可能是这样的:首先,确定一个目标:将每个排列映射为一个自然数,这个自转载 2017-01-26 16:41:20 · 332 阅读 · 0 评论 -
对KM算法的理解
一般对KM算法的描述,基本上可以概括成以下几个步骤: (1) 初始化可行标杆 (2) 用匈牙利算法寻找完备匹配 (3) 若未找到完备匹配则修改可行标杆 (4) 重复(2)(3)直到找到相等子图的完备匹配 关于该算法的流程及实施,网上有很多介绍,基本上都是围绕可行标杆如何修改而进行的讨论,至于原理并没有给出深入的探讨。 KM算法是用于寻找带权二分图最佳匹配的算法。转载 2017-01-13 21:45:58 · 2652 阅读 · 0 评论 -
java中的BigInteger
JAVA之BigInteger用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂。用Java刷了一些题,感觉Java还不错,在处理高精度和进制转换中,调用库函数的来处理。下面是写的一些Java中一些基本的函数的及其……头文件:import java.io.*;import java.util.*;imp转载 2016-10-01 09:53:41 · 233 阅读 · 0 评论 -
JAVA的acm用法
[java] view plain copy print?"font-family: Arial, Helvetica, sans-serif;"> [java] view plain copy print?import java.math.*; import java.util.*; public转载 2016-10-01 10:48:36 · 362 阅读 · 0 评论 -
java_acm快速输入和输出
版权声明:本文为博主原创文章,未经博主允许不得转载。快速输入和输出:平常我们在用Java做acm题目的时候,都是用[java] view plain copyprint?Scanner cin = new Scanner(System.in); int num = cin.nextInt(); System.out.print转载 2016-10-01 09:44:41 · 471 阅读 · 0 评论 -
二分图大讲堂——彻底搞定最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配
匹配文本内容框架:§1图论点、边集和二分图的相关概念和性质§2二分图最大匹配求解匈牙利算法、Hopcroft-Karp算法§3二分图最小覆盖集和最大独立集的构造§4二分图最小路径覆盖求解§5二分图带权最优匹配求解Kuhn-Munkers算法§6小结每章节都详细地讲解了问题介绍,算法原理和分析,算法流程,算法实现四部分内转载 2016-09-03 21:46:26 · 380 阅读 · 0 评论 -
最大权闭合图 [网络流]最大权闭合图(转载)
最大权闭合图[网络流]最大权闭合图(转载)来自: http://hi.baidu.com/%C6%AE%BB%A8%C4%EA%B4%FA/blog/item/45d4bb1765e7044721a4e960.html以下内容参考 胡伯涛 《最小割模型在信息学竞赛中的应用》,感谢他为我们提供这么优秀的论文。看不懂以上论文的同学,可以试试看一下以下内容转载 2016-08-26 19:37:02 · 393 阅读 · 0 评论 -
旋转卡壳算法
旋转卡壳算法 poj2187 poj3608 旋转卡壳可以用于求凸包的直径、宽度,两个不相交凸包间的最大距离和最小距离等。虽然算法的思想不难理解,但是实现起来真的很容易让人“卡壳”。 拿凸包直径(也就是凸包上最远的两点的距离)为例,原始的算法是这样子: Compute the polygon's extreme points in the y d转载 2016-08-17 12:41:29 · 454 阅读 · 0 评论 -
插板法与第二类stirling数的区别
插板法与第二类stirling数都是用来处理n个物品分为p份的处理方法。其区别在于:对于插板法来说,每个物品是等价的,没有差别的;而对于stirling数来说,每个物品各不相同。原创 2016-08-12 15:14:45 · 372 阅读 · 0 评论 -
原根
定义:设,,使得成立的最小的,称为对模的阶,记为。定理:如果模有原根,那么它一共有个原根。定理:若,,,则。定理:如果为素数,那么素数一定存在原根,并且模的原根的个数为。定理:设是正整数,是整数,若模的阶等于,则称为模的一个原根。 假设一个数对于模来说是原根,那么的结果两两不同,且有,那转载 2017-08-16 10:24:21 · 2661 阅读 · 0 评论 -
2-SAT
2-SAT题目总结: http://blog.sina.com.cn/s/blog_71ded6bf0100tn3d.html关于2-SAT(2-Satisfiability)资料的话就是伍昱的《由对称性解2-SAT问题》PPT和赵爽的《2-SAT 解法浅析》PDF。转载 2017-03-02 00:51:27 · 219 阅读 · 0 评论