随笔分类 - 算法
摘要:0.什么是自动机 点我查看 1.实现原理 ,详细戳这里 本质:字符串图论 这里重点看代码实现 #include<bits/stdc++.h> #define N 1000005 using namespace std; int T,n; char s[N],t[N];//
阅读全文
摘要:0.位运算 1.概述 用01数字标志状态 2.要求 对象状态只能有两种,例如放/不放,正/反等等 某一项指标的范围很小 3.实际运用 后续 一般表示状态(除特殊说明) 特殊方格棋盘 click 组合:我会! 先考虑所有格子都能放 ,可以状压
阅读全文
摘要:1.矩阵乘法 说白了就是 c[i][j] = a[i][k] * b[k][j] 2.矩阵快速幂 就是把快速幂中整数乘法换成了矩阵乘法 struct ma { int m[5][5]; }ans,base; ma cal(ma a,ma b) { ma tmp; for(int i = 1;i <=
阅读全文
摘要:4.代码 由1.中思路+性质(else),可得代码: void nxt() { n[0] = -1; int k = -1; int j = 0; while(j < t.length()) { if(k == -1 || t[j] == t[k]) { j++,k++; n[j] = k; } e
阅读全文
摘要:LaTeX 注:引理见后面第四部分 1.欧拉函数,欧拉筛及应用 1.欧拉筛: for(int i = 2;i <= N;i++) { if(!vis[i]) pri[++cnt] = i; for(int j = 1;i * pri[j] <= N;j++) { int u = i * pri[j]
阅读全文
摘要:注:相关引理,方法证明见于数论+组合后面 1.构造一个只由8组成的数,使得它能被k整除并且长度最小 设答案长度为 可得到 即 \[\begin{cases} 8 \times 10^n -
阅读全文
摘要:看逆天算法,品百味OI#4 1.重链剖分 给出如下定义: 重子结点:一个点的子节点中子树最大的点 轻子节点:剩余的子节点 重边:该节点到重子节点的边 轻边:到轻子节点的边 重链:若干条首尾相接的重边 预处理由两个DFS实现 DFS1:记录节点的父节点、深度、子树大小、重子结点 DFS2:记录所在链的
阅读全文
摘要:最考验开数组的一集(巨容易 ) 权值线段树 本质:线段树维护桶 叶子节点表示某数出现了几次,负责 的点表示 中的数共出现了几次 用途: 查看某数的排名 查看某区间内数的个数 查看第 大/小的数 对于第三种操作,我们每次把 与左/右子树的大小比
阅读全文