![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ACM——技巧、模板、经典题目、思路整理
a
一只酷酷光儿( CoolGuang)
桃李不言 下自成蹊
展开
-
关于区间互质询问及莫队思想的总结
上着英语网课写这个总结,真是有点冲。就简单分享两个题目,总结一下:Problem A给出一段序列a(a_1,a_2......a_n),Q次询问L,R,Z求:简单分析一下这个题目:gcd合并之后只会变小或者不变,所以题目就换成了,在区间L,R内,哪个数与z的gcd最大。第一次的思路是二分,类似口算训练的二分:因为gcd(X,Y)可以看为X与Y的最大的公共因子,所以可...原创 2020-03-09 11:48:07 · 532 阅读 · 0 评论 -
【知识总结】最长公共上升子序列 | LCIS、O(n^2)
想总结一下此类问题,总是鸽!今天决定不鸽!最长公共上升子序列也就是LCS与LIS的结合体此时如何做到O(n^2)呢?考虑f(i,j)表示a数组的前i个与b数组的前j个构成的并且以a[i]与b[j]结尾的最长公共上升子序列此时用网格图考虑一下: 2 4 3 6 5 2 1 0 0 0 0 5 1 0 0 0 2 6 1 0 0 1 2 .原创 2020-07-17 15:54:21 · 334 阅读 · 1 评论 -
【知识总结】滑动窗口详解一次搞懂!从经典滑动窗口到双向队列
研究了一下午,可算是把 滑动窗口 整明白了,下面是来自初学者 的 非常完美 的 总结。因为在网上找了好久也没有一篇像样的总结,所以励志自己要写一篇!题目链接:POJ 2823题目大意:输入一个长度为n(n≤≤106106)的数列,给定一个长度为k的窗口,让这个窗口在数列上移动,求移动到每个位置窗口中包含数的最大值和最小值。即设序列为A1A1,A2A2,…,AnAn,设f(i)=min...原创 2019-03-26 16:34:37 · 1585 阅读 · 0 评论 -
【知识总结】关于笛卡尔树
笛卡尔树:在范围最值查询、范围top k查询等问题上有广泛应用。它具有堆的有序性,中序遍历可以输出原数列。一、定义与性质首先先明确,笛卡尔树的构建是根据两个键值来的,第一个是他的if顺序,另一个是他维护的权值(最大或者最小),满足每个节点的根都是两边区间的最小值(性质),比如说 序列 :3 1 5 4 2 它的笛卡尔树就是这样的:首先,可以看出它满足 id从左到右的顺序,其次每个根...原创 2019-07-31 22:40:29 · 2537 阅读 · 4 评论 -
【知识总结】浅谈关于树的重心及其求法
一.树的重心定义 树的重心:找到一个点,其所有的子树中最大的子树节点数最少.二.树的重心性质树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个距离和,他们的距离和一样。 把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线上。 一棵树添加或者删除一个节点,树的重心最多只移动一条边的位置。 一棵树最多有两个重心,且相邻。 三.如何求树的重心...原创 2019-08-07 15:19:58 · 4282 阅读 · 0 评论 -
【知识总结】关于异或(xor)区间问题的总结
最近遇到的区间异或的问题比较多,总结一下。以下难度递进第一类:问题描述:给你出一个序列,询问有多少个区间异或为x。例子:1 2 3 异或为0 的只有一段 1^2^3 所以输出1题解:此类问题有统一解,我们需要处理异或前缀 :由于异或的特殊性:a xor a = 0 所以所以列出式子:所以对于任意一个新的异或前缀,我们只需要找前面有多少个异或前缀与相等就可以了...原创 2020-03-02 12:49:25 · 8698 阅读 · 2 评论 -
【知识总结】浅谈分治思想与倍增思想及其应用
这篇文章屯了很久了,一直想把内容总结到最好。但由于时间关系,就先把现在能总结出来的写一下。关于分治基础分治分治,意为:分而治之。通常来说,将问题划分为若干个子问题,通过子问题的合并从而得到最优解。一般分治都是讲问题分为左区间与右区间,划分为其他区间的分治 少之又少。怎么通过问题的合并来得到最优解呢?举个例子来看:例子1:有N个数,你的任务是求出异或为0的区间有多...原创 2020-04-01 18:18:51 · 582 阅读 · 1 评论 -
【知识总结】数论定理整理与模板整理
目录一.定理整理二.模板整理一.定理整理1.欧拉定理(也称费马-欧拉定理):是一个关于同余的性质。欧拉定理表明,若n,a为正整数,且n,a互质,则: 2.威尔逊定理:当且仅当p为素数时:①( p -1 )! ≡ -1 ( mod...原创 2019-08-09 11:15:54 · 1017 阅读 · 0 评论 -
【知识总结】图论定理整理及模板整理
定理整理:关于二分图:(1) 二分图的最小路径覆盖1.最小不相交路径覆盖 :Res==节点数-最大匹配数2.最小可相交路径覆盖:首先floyd算法跑出所有可以到达的点,之后Res==节点数-最大匹配数(2)二分图的最小顶点覆盖:定义:若选择一个点说明选择与它相连的所有边,最小顶点覆盖就是选择最少的点来覆盖所有的边。最小定点覆盖==二分图最大匹配(3)二分图最大独立...原创 2019-09-16 22:07:50 · 1417 阅读 · 1 评论 -
【知识总结】字符串及数据结构定理与模板
1.KMP算法next数组(最长公共前后缀)int Next[maxn];char s[maxn],t[maxn];void restart(){ int i=-1,j=0; int len=strlen(s); Next[0]=-1; /*** abababd abababd ***/ while...原创 2019-09-22 22:43:34 · 280 阅读 · 0 评论 -
【知识总结】一些优秀的dp状态总结
该博客会一直更新优秀dp的状态1.求两个字符串相同子序列的个数:设dp[i][k] 表示表示字符串s前i个字符与字符串t前k个字符相同的子序列个数那么dp[i][k]=dp[i-1][k]+dp[i][k-1]-dp[i-1][k-1]//类似于容斥如果s[i]==t[k] dp[i][k]+=dp[i-1][k-1]+1 //新增子序列+自己2.二进制给出L,求满足a+b...原创 2020-02-05 00:32:09 · 1635 阅读 · 0 评论 -
【知识总结】一些优秀的解题思路
1.有N个数,任取两个数组合,共有N*(N-1)种组合,问其中第K大的和是多少?思路:从第 -1e18 到 1e18 去二分,每次二分的判断条件为 当前大于mid的数是否小于k复杂度:N*lgN*lgN2.基础线段树修改:每次对区间内的每一个数 进行下取整 ,每次询问区间和是多少?思路:分析一下 一段递增的序列 下取整之后 是单调不递减(具有周期性) 1 2 3 4 5 6 7 ...原创 2020-02-18 22:12:05 · 727 阅读 · 3 评论