- 博客(29)
- 收藏
- 关注
原创 Unstandard Template Library
Unstandard Template Library排序归并排序基数排序排序归并排序template<typename Typename>inline void MergeSort(Typename *Arr,int left,int right){ Typename *Tmp=new Typename[right-left+1]; register int tmp=0,ls,lk,rs,rk; for(register int k=1;k<=right
2021-08-31 12:58:48 449
原创 Ural 1682 做题笔记
#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;template<int MaxN>struct UnionSets{ int Dad[MaxN],limit; inline void Clear(){ for(int i=0;i<=limit;i++) Dad[i]=i; } inl
2022-02-09 12:01:41 147
原创 NTT多项式板子
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int input=1000000;char InPut[1000005];inline char GetChar(){ if(input>=1000000)fread(InPut,1,1000000,stdin),input=0; return InPut[input++];}#defin
2021-10-24 09:21:46 214
原创 SizeBalancedTrees
前言BST一直都是卡常的领域,为了不被卡常,我们需要一个更平衡的BST,SizeBalanceTree就是不错的选择。旋转众所周知,平衡树分为两类,非旋平衡树和旋转平衡树,SizeBalanceTree是依靠旋转来保持平衡的。左旋左旋的意思就是把当前节点移到左边去,同时保持树的中序遍历不变,右旋也是同理(代码与左旋对称),注意保持树的中序遍历不变是非常重要的,它决定了树的搜索性质是否变化;右旋代码inline void Rotate(int &now,bool flag){
2021-10-14 19:45:46 234
原创 FastIO
const int MaxS=2100;int limit,pos;char St[MaxS];inline int GetLine(){ pos=0;limit=0;char ch=getchar(); while(ch!='\n'&&ch!='\r'){ St[limit++]=ch; ch=getchar(); } St[limit]='\n'; return limit;}template<typename inttype>inline in
2021-10-07 09:21:26 123
原创 动态规划的优化
动态规划的优化1.01.01.0 单调队列\单调栈优化1.0.01.0.01.0.0 例题引入1.0.11.0.11.0.1 分析1.01.01.0 单调队列\单调栈优化1.0.01.0.01.0.0 例题引入有 NNN 块木板从左到右排成一行 ,,, 有 MMM 个工匠对这些木板进行粉刷 ,,, 每块木板至多被粉刷一次 ...第 iii 个木匠要么不粉刷 ,,, 要么粉刷包含木板 SiS_iSi 的 ,,, 长度不超过 LiL_iLi 的连续的一段木板 ,,, 每粉刷一块可以得到 PiP_
2021-10-06 09:36:00 137
原创 背包模型
背包模型1.01.01.0 010101背包问题2.02.02.0 完全背包问题3.03.03.0 多重背包问题3.0.13.0.13.0.1 直接拆分法3.0.23.0.23.0.2 二进制拆分法3.0.33.0.33.0.3 单调队列优化3.0.43.0.43.0.4 Acwing2814.04.04.0 分组背包问题1.01.01.0 010101背包问题每一个物品只能取 111 次 ,C++,C++,C++ 模板 :::#include<cstdio>#include<cs
2021-09-30 14:51:13 102
原创 二分图匹配的可行边和必须边
定义给定一张二分图 ,,, 其最大匹配方案不一定是唯一的 ... 若任何一个最大匹配方案的匹配边都包括 (x,y),(x,y),(x,y), 则称 (x,y)(x,y)(x,y) 为二分图匹配的必须边 ... 若 (x,y)(x,y)(x,y) 至少属于一个最大匹配的方案 ,,, 则称 (x,y)(x,y)(x,y) 为二分图匹配的可行边 ...解法保证完备匹配时我们先求出任意一组完备匹配的方案 ,,, 此时所有节点都是匹配点 ...根据定义 ,,, (x,y)(x,y)(x,y) 是必须边
2021-09-29 20:18:31 534
原创 欧拉路和哈密顿路
欧拉路欧拉路是指 ::: 存在这样一种图 ,,, 可以从其中一点出发 ,,, 不重复地走完其所有的边 ... 如果欧拉路的起点与终点相同 ,,, 则称之为欧拉回路 ...欧拉路存在的充要条件如下 :::图是连通的 ,,, 若不连通不可能一次性遍历所有边。对于无向图 :::有且仅有两个点 ,,, 与其相连的边数为奇数 ,,, 其他点相连边数皆为偶数 ;;;对于两个奇数点 ,,, 一个为起点 ,,, 一个为终点 ... 起点需要出去 ,,, 终点需要进入 ,,, 故其必然与奇数个边
2021-09-28 20:45:17 680
原创 有向无环图的最小路径点覆盖
有向无环图的最小路径点覆盖问题解法1.1.1. 拆点二分图定义2.2.2. 定理1113.3.3. 拓展问题问题给定一张有向无环图 ,,, 要求用尽量少的不相交的简单路径((( 不是有向边 ))) ,,, 覆盖有向无环图的所有顶点 ((( 也就是每个顶点恰好被覆盖一次 ).).). 这个问题被称为有向无环图的最小路径点覆盖...解法1.1.1. 拆点二分图定义设原来的有向无环图为 G=(V,E),n=∣V∣.G=(V,E),n=|V|.G=(V,E),n=∣V∣. 把 GGG 中的每一个 xx
2021-09-28 19:03:54 337
原创 2-Satisfiability专题
2-Satisfiability专题模型判定构图方法模型有 NNN 个变量 ,,, 每个变量只有两种可能的取值 ... 在给定 MMM 个条件 ,,, 每个条件都是对两个变量的取值限制 ... 求解 ::: 是否存在对 NNN 个变量的合法赋值 ,,, 使 MMM 个条件均得到满足 ...设一个变量 Ai(1≤i≤N)A_i(1\le i\le N)Ai(1≤i≤N) 的两种取值分别是 Ai,0A_{i,0}Ai,0 和 Ai,1.A_{i,1}.Ai,1. 在 2−Sat2-Sat2−Sat
2021-09-27 22:08:54 127
转载 欧拉简单多面体定理
转载于 ::: 这里简单多面体欧拉定理 ::: 对于简单多面体 ,,, 其各维对象数总满足一定的数学关系 ,,, 在三维空间中设其顶点 ,,, 边和面的数量分别为 V,E,FV,E,FV,E,F 则欧拉定理可表示为 :::V−E+F=2V - E + F = 2V−E+F=2对多面体的顶点数n进行数学归纳 :::顶点最少的多面体为四面体 ,,, n = 4 ((( 三棱锥 ),),), 验证得 V−E+F=4−6+4=2,V-E+F=4-6+4=2,V−E+F=4−6+4=2, 命题成立 .
2021-09-27 15:49:58 601
原创 DevCpp运用
CompilerOptionsCompiler OptionsCompilerOptions第一个窗口是编译选项 ,,, -std=c++14 是 C++C++C++ 的编译标准 ,,, -Wall 和 -Werror 是反映编译警告的编译选项 ...这里是图形化界面 ,,, DevCpp11DevCpp11DevCpp11 有中文版 ...选项 -pg能产生供 gprofgprofgprof 剖析用的可执行文件 ,,, gprofgprofgprof 是 LinuxLinuxLinux 下.
2021-09-25 15:26:01 383
原创 差分约束问题
差分约束问题模型构图方法模型差分约束系统是一种特殊的 NNN 元一次不等式组 ... 包含 NNN 个变量 x1∼xnx_1\sim x_nx1∼xn 以及 MMM 个约束条件 ,,, 每个约束条件都是由两个变量作差构成的 ,,, 形如 xi−xj≤cxx_i-x_j\le c_xxi−xj≤cx ,,, 其中 cxc_xcx 是一个常数 ,,, 1≤i,j≤N,1≤k≤M.1\le i,j\le N,1\le k\le M.1≤i,j≤N,1≤k≤M. 求一组解 xi=ai,x_i=a_i
2021-09-24 22:18:26 121
原创 01分数规划专题
01分数规划专题问题问题给定整数 a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an 以及 b1,b2,⋯ ,bnb_1,b_2,\cdots,b_nb1,b2,⋯,bn ,,, 求一组解 xi,(1≤i≤n,xi∈{0,1}),x_i,(1\le i\le n,x_i\in \{0,1\}),xi,(1≤i≤n,xi∈{0,1}), 使下式最大化 :::Σi=1nai∗xiΣi=1nbi∗xi\frac{\Sigma^n_{i=1}a_i*x_i}{\
2021-09-24 11:41:25 82
原创 基环树专题
基环树专题最近公共祖先直径最近公共祖先Acwing 392Acwing~392Acwing 392const int MaxN=5e5+1e4;int Head[MaxN],Dp[MaxN][21],Belong[MaxN],Dad[MaxN];inline int GetDad(int x){ return x==Dad[x]?x:Dad[x]=GetDad(Dad[x]);}inline void Union(int x,int y){ x=GetDad(x);y
2021-09-24 08:07:04 87
原创 P4408 [NOI2003] 逃学的小孩 题解
目录贪心及其证明贪心及其证明设 A,BA,BA,B 为树直径的端点 ,,, Distx,yDist_{x,y}Distx,y 为树上两点的距离 ,,, 则答案为 ∀x,y,k∈T,max(min(Distx,k,Disty,k)+Distx,y).\forall x,y,k\in T,\max(\min(Dist_{x,k},Dist_{y,k})+Dist_{x,y}).∀x,y,k∈T,max(min(Distx,k,Disty,k)+Distx,y).分两种情况证明 ,,, 其中 A
2021-09-23 19:38:02 227
原创 最短路专题
最短路专题最短路FloydFloydFloyd 算法BellmanFordBellmanFordBellmanFord 算法判负环BellmanFordBfsBellmanFordBfsBellmanFordBfs 算法判负环DijkstraDijkstraDijkstra 算法正权最短路原始对偶算法KthPathKthPathKthPath 问题最短路FloydFloydFloyd 算法BellmanFordBellmanFordBellmanFord 算法判负环BellmanFordBfsBe
2021-09-22 20:56:53 169 1
原创 Cpp泛型
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;template<typename TypenameF,int MaxN,int MaxM>class Graphs{ public: typedef TypenameF value_type; int Last[MaxN],cntn; int To[MaxM],Next[MaxM],cntm
2021-09-22 12:51:37 249
原创 网络流专题
最小费用流capacity−scalingcapacity-scalingcapacity−scaling 算法FromFromFrom OuuanOuuanOuuan#include<cstdio>#include<cstring>#include<algorithm>using namespace std;template<typename Typename>inline Typename Max(const Typename&x
2021-09-16 20:31:17 123
原创 杂七杂八的特性
浮点数的比较a=b→∣a−b∣<Epsa = b\rightarrow |a-b| < Epsa=b→∣a−b∣<Epsa≠b→∣a−b∣>Epsa \not= b\rightarrow |a-b| > Epsa=b→∣a−b∣>Epsa>b→a−b>Epsa > b\rightarrow a-b > Epsa>b→a−b>Epsa≥b→a−b>−Epsa \ge b\rightarrow a-b > -Eps
2021-09-15 09:56:07 87
原创 字符串专题
字符串专题KmpKmpKmp 算法ManacherManacherManacher 算法KmpKmpKmp 算法#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int Maxn=1e6+2e2;//Kmp[i] is mean the longest same preifx and suffix's len.int Kmp[Maxn],lena,le
2021-09-14 20:57:06 72
原创 数学专题
数学专题判断质数1.0 O(n)O(\sqrt n)O(n)做法2.0 MillerRabinMillerRabinMillerRabin和PollardRhoPollardRhoPollardRho算法3.0 线性筛素数欧拉函数欧拉定理及其推论拓展欧几里德矩阵乘法高斯消元莫比乌斯函数判断质数1.0 O(n)O(\sqrt n)O(n)做法inline bool Check(const int&num){ for(register int i=2;i*i<=num;++i)//n
2021-09-14 20:43:38 136
原创 匹配专题
匹配专题二分图的匹配最大匹配二分图的匹配最大匹配Graphs<MaxN,MaxM>G;Queue<int,MaxN>Q;int ans;int Pre[MaxN],Match[MaxN],Mark[MaxN];//Mark 为时间戳 每一个左部点的匹配 右部点只会参加一次 int n,m;inline void Bfs(){ memset(Match,-1,sizeof(Match)); memset(Mark,-1,sizeof(Mark)); for(re
2021-09-14 09:27:39 143
原创 图论专题
图论专题数据结构邻接矩阵邻接表数据结构邻接矩阵定义矩阵 Arrx,yArr_{x,y}Arrx,y 表示节点 xxx ,,, yyy 之间的信息 ...int Cost[MaxN][MaxN];inline void Work(){ int from; for(register int to=1;to<=n;to++) if(Cost[from][to]!=-1)Cost[from][to];}inline void Init(){ memset(Cost,-1,size
2021-09-13 15:09:35 102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人