自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 AtCoderRegularContest105 E

ARC105 E

2022-07-18 17:10:08 137 1

原创 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

原创 关于编程的小思考

思考算法算法算法是一系列指令的集合体 ,,, 我们必须保证输入算法的对象是算法能够处理的 ...

2021-09-27 09:43:16 102

原创 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

原创 连通性专题

强连通专题

2021-09-09 19:58:18 219

原创 线段树专题

线段树专题线段树合并线段树合并

2021-09-08 10:06:02 133

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除