每日算法打卡
_记念_
这个作者很懒,什么都没留下…
展开
-
POJ - 3162(树形dp + 二分 + 滑动窗口)
思路显然,可以通过树形dp求得树上每一点可以达到的最远距离参考博客得到d数组后,我们就可以发现这个区间长度符合二分性,所以我们可以二分区间长度在利用滑动窗口check合理性。注意求最大值,我一般用左闭右开区间。求最小值,我用的一般是左开右闭。树形dp模板(理解就可以认为是把子节点拎起来变成根)dp[maxn][3]dp[u][0]表示以u为根的子树中的结点与u的最远距离dp[u][1...原创 2019-11-14 09:55:19 · 152 阅读 · 0 评论 -
马拉车算法(线性求回文串)
参考博客AC代码(模板)#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 4e5 + 10;char s[maxn], tmp[maxn];int dp[max...原创 2019-09-13 17:11:49 · 115 阅读 · 0 评论 -
欧拉定理及扩展证明转载
链接引理2的证明引理2的证明引理2的证明就是p=ax,假定gcd(p,m)>1,那么p模m=r,gcd(r,m)>1移项可得ax−mk=r根据裴蜀定理ax−by=c的充要条件是gcd(a,b)∣c,并且所有的解都能表示成ax−by=gcd(a,b)的解x′,y′的c/gcd(a,b)倍这样gcd(a,m)=1,所以x一定是r的倍数,这就矛盾了就是p=ax,假定gcd...原创 2019-09-02 22:58:32 · 134 阅读 · 0 评论 -
Floyd算法求最小环
先放代码,再证明算法的正确性。证明我们给一个图做一个编号(1–n),也就是表示n个点。对于每一个环(不包括自环),我们取这个环上点的最大编号k。那么也就说与k相邻的两个点的编号小与k,我们记为 i 和 j 。那么 i 与 j 之间的最短路经过点的编号显然小与 k ,不然 k 就要被赋予这个更大的值那么我们跑 k-1 次循环就可以找到 i 与 j 的最短路。我们假设最短路长度是dis...原创 2019-08-21 20:01:10 · 280 阅读 · 0 评论 -
二分图匹配专题总结
入门级必备知识点定理一:最小点覆盖:选取尽可能少的点,使得任意的一条边都有至少一个端点被选到。|最小点覆盖| = |最大匹配数|定理二:最大独立集:选取尽可能多的点,使得所取得点中,任意的两点均不相连。|最大独立集| = |V| - |最大匹配数|定理三:最小边覆盖: 选取最少边的让所有点都被覆盖|最小边覆盖| = |V| - |最大匹配数|最小路径覆盖:对于一个 DAG(...原创 2019-08-21 19:26:26 · 162 阅读 · 0 评论 -
树的直径最简单证明及代码
转载博客模板题思路首先建一棵树,然后对树上的k个点求一个最大直径D,然后D/2上取整AC代码#include <bits/stdc++.h>using namespace std;const int maxn=1e5+5;vector<int>tree[maxn];struct node{ int val; int index; ...原创 2019-08-04 13:18:37 · 282 阅读 · 0 评论 -
单调栈
下面引自百度百科单调递增或单调减的栈,跟单调队列差不多,但是只用到它的一端,利用它可以用来解决一些ACM/ICPC和OI的题目,如RQNOJ 的诺诺的队列等。单调栈是一种特殊的栈,特殊之处在于栈内的元素都保持一个单调性。向右看齐Look Up模板题AC代码#include <bits/stdc++.h>using namespace std;const int maxn...原创 2019-06-05 09:34:04 · 94 阅读 · 0 评论 -
KMP习题集
模板题剪花布条AC代码#include <bits/stdc++.h>using namespace std;void getNext(char p[],int Next[]){ Next[0]=-1; int i=0,j=-1; int n=strlen(p); while(i<n){ if(j==-1||p[i]==p...原创 2019-05-01 14:15:24 · 410 阅读 · 0 评论 -
并查集学习总结
新手入门必备原创 2019-06-14 17:01:46 · 137 阅读 · 0 评论 -
单调队列
顾名思义单调队列这个名字就指明了它的性质——单调性说单调队列,那我们就先说说这个单调队列是个什么物种。单调队列从字面上看,无非就是有某种单调性的队列,没错,这就是所谓的单调队列。 单调队列它分两种,一种是单调递增的,另外一种是单调递减的。在这搬出百度百科的解释:不断地向缓存数组里读入元素,也不时地去掉最老的元素,不定期的询问当前缓存数组里的最小的元素。用单调队列来解决问题,一般都是需要得到...原创 2019-05-30 15:47:56 · 1221 阅读 · 0 评论 -
尺取法
Subsequence题面Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 24139 Accepted: 10212DescriptionA sequence of N positive integers (10 &lt; N &lt; 100 000), each of them less than or equa...原创 2019-03-17 22:10:20 · 137 阅读 · 0 评论