06 2019 档案
摘要:对于KMP算法的学习,在寒假时我还是搞不太明白,但几个月之后,对于它的理解又更近了一步。 首先是对于子串的自我匹配,求一个fail数组,fail[i]对于字符串SS的前ii个字符构成的子串,既是它的后缀又是它的前缀的字符串中(包括他),最长的长度记作fail[i]。 举个例子,abcdabc中fai
阅读全文
摘要:Tarjan求LCA,打起来真的爽
阅读全文
摘要:#include using namespace std; const int maxn=450005; struct node{ int nxt; int to; }tree[maxn*2]; struct node1{ int LCA; int nxt; int to; }qtree[maxn*2]; int fa[maxn]; int n,m,p,x...
阅读全文
摘要:树的直径的定义: 对于求树的直径,我们有两种方法,使用两次dfs遍历和bfs遍历。 我选用的是dfs遍历,两次dfs遍历。 第一次:任选一个节点,找到最长路的节点去。 第二次:以刚刚走到的那个节点为原点,再跑一遍最长路。 某位Dalao博客中对于其的证明
阅读全文
摘要:首先一看应该是组合数的问题,但我们选出m个数之后,其他的数就不能再排在它原本的位置,所以又需要错排求出方案数。 错牌公式递推式: 有d[2]=1,d[0]=1,d[1]=0。d[i]=(i-1)*(d[i-1]+d[i-2]) 又由乘法原理可得出总方案数。 注意:阶乘,逆元,错排都要预处理出来,否则
阅读全文
摘要:这道题明显是组合数的题目,但对于组合数的考察还是比较灵活,网上有一篇博客里讲的比较清楚
阅读全文
摘要:对于组合数,往往要用到阶乘,但是阶乘的数据极其之大,所以要用取模的办法防止数据溢出。 而卢卡斯定理在这个时候就有很大的用处了,来看百度百科上的简介。 代码如下 Luogu P3807
阅读全文
摘要:noip原题 扩欧入门裸题,题中的同余方程看作ax+by=1,记住一个重要的结论形如ax+by=c的方程的最小正整数解为(x*(c/gcd(a,b))%abs(b/gcd(a,b))+abs(b/gcd(a,b)))%gcd(b/gcd(a,b))可以看我之前有关扩欧算法的博客。
阅读全文
摘要:做法:组合数取模 其实我们观察那么长一个式子,其实它有一个结论,在数学竞赛中也常提到,结果就是C(2n,n),相当于从2n个数选n个数出来。因为阶乘的结果太大,所以我们还需要用到逆元。 对于逆元我也会写博客来讲解,求逆元有多种方法,扩欧,费马小定理+快速幂,递推打表,递归(会爆栈) 扩欧求逆元 快速
阅读全文
摘要:考试时看到这道题感觉还行,用的是贪心+dp的处理方法,首先我们将所有城市所用兵力和火力值的差值排一道序,然后我用了一个dp数组f[]表示在第i座城市所用的最少兵力 那么又如何来转移呢,见代码。 但不知为何迷之80分???
阅读全文
摘要:终于把割点的模板给调出来了 割点的定义: 在无向连通图中,如果将其中一个点以及所有连接该点的边去掉,图就不再连通,那么这个点就叫做割点(cut vertex / articulation point)。 例如,在下图中,0、3是割点,因为将0和3中任意一个去掉之后,图就不再连通。如果去掉0,则图被分
阅读全文
摘要:#include using namespace std; const int maxn=2e6+7; int n,m,q; int a[maxn]; int b[maxn]; int root[maxn]; int lc[maxn>1; build(lc[t],l,mid); build(rc[t],mid+1,r); } int modify(int o,int l,int ...
阅读全文
摘要:今天上课时叕听了一遍最小生成树,最小生成树的知识就不必多说了吧,对于这道题,我们将打通的费用可以看作边权,而打井呢又可以看作把它与0点连接,也就是我们再新建一个点 然后就是kruskal求最小生成树了
阅读全文
摘要:几个月前在学校zxr dalao讲过单调栈,所以对于单调栈还是有一些了解,这道题根据题意,声音只能被身高大于它的奶牛听见,也就是说,每一个奶牛只能听见身高比他矮的奶牛的声音。 所以我们需要维护一个单调递减的单调栈,遇到一个比它高的奶牛就将其弹出栈,而那头高的奶牛听到的声音就是被弹出栈的奶牛声音的总和
阅读全文
摘要:什么是欧拉函数? 欧拉函数φ(x)为[1,x]中与x互质的数 几个重要结论 1.φ(1)=1 这个显而易见吧 2.φ(质数x)=x-1; 3.如果p|x,那么ϕ(x∗p)=ϕ(x)∗p,否则ϕ(x∗p)=ϕ(x)∗(p−1)。非常有用的结论 欧拉筛模板,时间复杂度O(n),所以是线性筛
阅读全文
摘要:大水题,不过考试时我想到的是KMP
阅读全文
摘要:广搜水题,不用我多说了吧,复习一下广搜
阅读全文
摘要:完全数学找规律,因为k把整个区间分成1-k和k-n两部分,在1-k内,需要回到1,所以不论如何都有一个点只有一种情况,而在k-n区间中,走法不限,就是(n-k)^(n-k),最后乘法原理乘起来就是结果,注意取模
阅读全文
摘要:这道题其实还是比较简单的模拟,考试的时候我觉得可以用二分答案,没有做出来。只能得50分部分分,但这道题还有一个坑点就是输入时要将日期从大到小重新排序。 code
阅读全文
摘要:简单的二分答案,但要注意边界的选取以及如何二分答案
阅读全文

浙公网安备 33010602011771号