自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 收藏
  • 关注

原创 目录与学习计划

学习计划和目录

2021-08-06 18:20:52 235

原创 AcWing周赛反思和总结

第49周T2给定一个长度为 nnn 的整数序列 a1,a2,…,ana1,a2,…,ana1,a2,…,an。请你找到一个该序列的子序列,要求:1,该子序列的所有元素之和必须是奇数。2,在满足条件 1 的前提下,该子序列的所有元素之和应尽可能大。输出你找到的满足条件的子序列的所有元素之和。建模贪心:1,理论最大值:所有正元素的和2,理论实际差值:理论最优可能是偶数3,消除差异的方法:加一个负奇数或者减一个正奇数,自然绝对值要尽可能小4,思想:理论最值微扰到实际,理论基础:微扰证明贪心

2022-04-30 21:42:36 410

原创 斜率优化DP

斜率优化DP概述用法1,单调队列选取(线性择取)2,二分择取(LOG 择取)3,CDQ 离线择取4,Splay 择取概述针对一类DP递推式中出现多项式交叉的多项式的DP一定要求具有求解单调性OI 的描述:将初始状态入队每次使用一条和 iii 相关的直线 fif_ifi​ 去切维护的凸包,找到最优决策,更新 dpidp_idpi​加入状态 dpidp_idpi​。如果一个状态(即凸包上的一个点)在 dpidp_idpi​加入后不再是凸包上的点,需要在dpidp_idpi​加入之前剔除思考

2022-04-20 22:26:41 447

原创 排序算法和妙用

排序算法和妙用前言一,归并排序1,基础简述2,简单扩展二,快速排序1,基础简述2,简单扩展三,基数排序(radix sort)前言在2020初学排序就把我差点劝退信竞,经历了很多很多,两年之后的今天,我才能熟练的掌握这貌似简单的基础算法排序也算是计算机科学最经典的问题了,在这一部分我们主要介绍静态排序,不过其中思想在后面很多地方我们都有用到一,归并排序1,基础简述递归处理左右区间,使得左右区间有序(分治的思想)双指针同步遍历左右区间,把两个有序数组合并到辅助数组(这一步我们可以

2022-04-07 20:59:08 311

原创 自适应积分求法

自适应积分求法一,自适应普辛森积分二,一,自适应普辛森积分解决一类积分问题,接受一个原函数和误差使用二次函数进行拟合递归处理左右区间并做和,判断误差是否在可接受范围之内若是在范围之内直接合并,其余的递归左右区间double f(double x){ .......}double simpson (double l,double r){ double mid = l +r; return (f(l)+f(r)+4*f(mid/2))/6*(r-l);}

2022-04-07 09:58:26 880

原创 树上启发式合并,静态链分治(DSU)

树上启发式合并,静态链分治(DSU)一,讲解二,使用T1题目友好链接题解codeT2题目友好链接题解codeT3题目友好链接题解codeT4题目友好链接题解codeT5题目友好链接题解code一,讲解https://www.acwing.com/solution/content/59241/遍历每一个节点递归解决所有的轻儿子,同时消除递归产生的影响递归重儿子,不消除递归的影响统计所有轻儿子对答案的影响更新该节点的答案删除所有轻儿子对答案的影响二,使用T1题目一片森林,每次询问一

2022-04-06 22:22:10 684

原创 环倍晋三(最小循环节或倍增)

题目给出一个长度为nnn的环,一个常数 kkk 和 qqq 次询问,每次跳跃会从第 iii 个点跳到第 (i+k)mod n+1(i+k) mod ~n + 1(i+k)mod n+1 个点(每次都是从第一个点开始跳)。每一个点都有一个权值,记为aiaiai。每次询问给出一个 mmm,求 mmm 次跳跃的权值和对1e9+71e9+71e9+7取模。断点概述:1,同时想到倍增和循环节的思路,可是因为思路不清,使得两个混淆思想概述:1,倍增处理:跳步数组和合计数组,无需思考m

2022-04-06 22:11:34 284

原创 倍增算法应用

倍增算法一,概述二,基础应用三,实际例子0,趣味知识1, 倍增+最短路2,倍增优化DP一,概述倍增法(英语:binary lifting),顾名思义就是翻倍。它能够使线性的处理转化为对数级的处理,大大地优化时间复杂度。基于使得所需区间由2的整数幂拼凑而成二,基础应用正序预处理+倒叙拼凑型1,预处理f[i][j]=f[i−1][f[i−1][j]]+...f[i][j]=f[i-1][f[i-1][j]]+...f[i][j]=f[i−1][f[i−1][j]]+...,与一种Dp类似2,

2022-04-06 21:58:59 1218

原创 随机增量构造

随机增量构造一,随机增量构造二,最小圆覆盖一,随机增量构造概述:在解决前 n−1n-1n−1 规模的问题前提之下,使得第nnn 个新加入的元素也是符合条件的注意:结合随机化,积累构造法则例子:扩展KMP,最小圆覆盖二,最小圆覆盖要素:三层循环引理:1,最小圆覆盖在确定其中点的情况下唯一确认2,若是第 iii 个点不在前面点的最小圆覆盖上,那么一定在可能的圆的边界上步骤:随机化点集初始时一个点的最小覆盖圆就是这个点本身假设已经求出前i−1i−1i−1个点的最小覆盖圆若第 i

2022-04-06 14:45:23 151

原创 二维计算几何基础

学习目标:提示:这里可以添加学习目标例如: 一周掌握 Java 入门知识学习内容:提示:这里可以添加要学的内容例如:搭建 Java 开发环境掌握 Java 基本语法掌握条件语句掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:周一至周五晚上 7 点—晚上9点周六上午 9 点-上午 11 点周日下午 3 点-下午 6 点学习产出:提示:这里统计学习计划的总量例如: 技术笔记 2 遍 CSDN 技术博客 3 篇 习的 vlog 视频 1

2022-04-06 12:08:59 189

原创 凸包和旋转卡壳

计算几何之凸包和半平面交准备和约定一,Andrew 凸包概述流程code准备和约定pdd operator - (pdd a,pdd b) 重载坐标减法{ return {a.x - b.x, a.y - b.y};}double cross(pdd a,pdd b) 叉积(外积){ return (a.x*b.y)-(a.y*b.x);}double area(pdd a,pdd b,pdd c) 求两条向量叉积{ return cro

2022-04-06 11:50:10 267

原创 树套树思想

树套树思想序言一,线段树套 multiset二,线段树套平衡树序言线段树是一种基于把查询区间划分为 log(n)log(n)log(n)个互相没有交集的小区间,并借助区间可加性维护的,所以只要把区间划分完成就可以独立查询修改注意变量划分,避免重名一,线段树套 multiset注意是多重集注意是lower还是upper区间插入一个哨兵避免特判建树时区间所有的点位置都要进入SET线段树开4倍,多留余量1 pos x,将 pospospos 位置的数修改为 xxx。2 l r

2022-04-04 11:51:32 349

原创 CDQ分治_三维偏序

CDQ分治_三维偏序一,偏序性质二,二维偏序三,三维偏序四,实际使用一,偏序性质二,二维偏序三,三维偏序第一维:使用三关键次排序自然保证第二维:使用双指针维护位置(排序后数组单调)第三维:动态添加,使用轻量化动态前缀和数据结构:树状数组注意:1,重复元素需要记次数,最后单独计算贡献,否则CDQ会出错2,归并排序和答案统计使用的是去重之后的数组3,重新定义小于号注意最后一步写法,不要出现没有返回值的情况4,注意重复统计的方法bool operator < (const nod

2022-04-02 20:49:04 547

原创 最大流,最小割刷题记录

T1 P2057 [SHOI2007] 善意的投票题目https://www.luogu.com.cn/blog/OnMyOwn/OnMyOwnhttps://www.luogu.com.cn/problem/P2057题目: 幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉。对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神。虽然每个人都有自己的主见,但是为了照顾一下自己朋友的想法,他们也可以投和自己本来意愿相反的票。我们定义一次投票的冲突数为好朋友之间发生冲突的总数加上和所有和自己本来

2022-04-01 17:10:02 280

原创 费用流建模

网络最大流建模一,基础使用一(半),(同时)快解最大和最小费用二,带权二分图匹配三,网格图(极度稠密)建模核心:网格编号特例 1,点权不重复积累类型特例 2,边权不重复积累四,拆点1,一般思想2,最大权不相交路径五,上下界可行流一,基础使用基于EKEKEK 算法的实现,把 BFSBFSBFS可行流搜索函数改写成为 spfaspfaspfa 求解(最长)最短路扩展保证最大流的前提之下求解最小(大)费用0xcf 是最费用流,0x3f 是最小费用最大流加边传参: (端点,端点,流量上界,费用)v

2022-03-29 19:52:18 270

原创 最小割建模

最小割建模一,基础知识割割的性质最大流最小割定理二,理论常见技巧割的引申类型三,常见题型1,直接使用按照已知和未知区分两个集合按照定义找到(最小)割2,最大权闭合子图一,基础知识割SSS 是一个点集,保证 SSS 内一定有源点 sssTTT 是一个点集,保证 TTT 内一定有源点 ttt[S,T][S,T][S,T] 定义为一个割c(S,T)c(S,T)c(S,T) : 一个割的容量(不考虑反向边,只考虑从S出发的)f(S,T)f(S,T)f(S,T) : 一个割的流量(考虑到从T回来的退

2022-03-26 21:42:24 654

原创 网络最大流建模

网络最大流建模一,二分图建模1,最大匹配具体方案2,多重匹配二,有上下界网络流1,无源汇上下界可行流描述思路实现2,有源汇上下界最大流3,有源汇上下界最小流三,多源汇(参考多重匹配)四,最大流关键边思路五,最大流判定无向图网络流+二分答案六,拆点七,实践最大流问题一般求集合最优解,要求我们可以建立原问题和网络流集合的一一对应关系在后续的方案输出中,一定要记得那些是原图的边,那些是残余网络中的边,针对问题进行不同的分析对于所有可行解的集合P:1,对于流网络的所有可行流的集合,对于可行解中的一个解

2022-03-24 18:41:34 1626

原创 树上问题进阶

树上问题进阶一,树上启发式合并(DSU or GUNI)版本一:DFS序统计要素基础树上DFS线性增删DSU on tree版本二:树上递归统计基础树上DFS一,树上启发式合并(DSU or GUNI)离线算法,log复杂度优于树上莫队启发式框架,sizesizesize 小的子树多来几遍,大的子树争取只要一遍离线的框架是灵活的,统计答案的方法也是不同的From CF:方案起源给出一棵 n 个节点以 1 为根的树,节点 u 的颜色为 c(u),现在对于每个结点 u 询问 u 子树里一共出

2022-03-17 18:06:33 422

原创 LCT 动态树(实链剖分)

动态树(LCT)

2022-03-15 17:39:05 1070

原创 数列分块和块状链表

数列分块和块状链表核心思路:大段维护,局部朴素原理:1,把数列分为n\sqrt{n}n​段每一段长度不超过n\sqrt{n}n​的数列段2,维护延时标记:增量或者其余区间信息约定(具有主观色彩):数列块数由1开始,...

2022-03-01 18:28:09 59

原创 LCA的求法和扩展

LCA的求法和扩展求解树上LCA(最近公共祖先)11,朴素dfs(形象的说就是:爬!)22,在线:倍增跃迁33,tarjan:离线使用LCA最长树边的长度求解树上LCA(最近公共祖先)先上个友链:来自队长的极佳blog11,朴素dfs(形象的说就是:爬!)思路:从两个点开始,先把深度更深的节点爬到两个节点相同的地步两个节点一起上移,直到同一深度过于直白,过程略22,在线:倍增跃迁规定:dep[0]=0dep[0]=0dep[0]=0(哨兵),默认lca第一个参的dep[x]dep[x]

2022-03-01 17:57:42 170

原创 模拟退火算法

启发式搜索之模拟退火一,问题描述二,算法实现三,例题1,二维费马点一,问题描述在实际日常中,人们会经常遇到如下问题:在某个给定的定义域X内,求函数 f(x)f(x)f(x) 对应的最优值。此处以最小值问题举例(最大值问题可以等价转化成最小值问题),形式化为:min⁡x∈Cf(x)\min _{x \in C }f(x)minx∈C​f(x)如果X是离散有限取值,那么可以通过穷取法获得问题的最优解;如果X连续,但f(x)f(x)f(x)是凸的,那可以通过梯度下降等方法获得最优解;如果X连续且f(x)f

2022-02-06 11:26:50 735

原创 网络流基础和最大流

文章目录一,网络流的基础概念EK 求最大流一,网络流的基础概念1.1 流网络,不考虑反向边1.2 可行流,不考虑反向边 1.2.1 两个条件:容量限制、流量守恒 1.2.2 可行流的流量指从源点流出的流量 - 流入源点的流量 1.2.3 最大流是指最大可行流1.3 残留网络,考虑反向边,残留网络的可行流f' + 原图的可行流f = 原题的另一个可行流 (1) |f' + f| = |f'| + |f| (2) |f'| 可能是负数1.4 增广路径1.5 割

2022-02-05 18:15:41 280

原创 左偏树与森林

左偏树与森林一,理论二,实现听说pb—ds很不错,喜欢算法库的可爱可以去转去看WC 2015 了一,理论高效合并优先队列外节点:只有一个儿子或没有儿子的节点,即左右儿子至少有一个为空节点的节点距离:一个节点到离它最近的外节点的距离,即两节点之间路径的权值和。特别地,外节点的距离为0,空节点的距离为−1左偏树:一种满足左偏性质的堆有序二叉树(左偏树的左偏性质体现在左儿子的距离大于右儿子的距离)左偏树的距离:我们将一棵左偏树根节点的距离作为该树的距离满足堆的基本性质

2022-02-03 18:10:56 443

原创 树链剖分基础及进阶

树链剖分和树上启发式合并一,树链剖分1,重链剖分剖分过程索引过程板子:(小清新写法)树剖应用1,边权转点3,注意事项:一,树链剖分思路: 把树上问题转化到线段树上维护,树上转为序列1,重链剖分意义:重链剖分可以将树上的任意一条路径划分成不超过O(logn)O(log n)O(logn)条连续的链,每条链上的点深度互不相同(即是自底向上的一条链,链上所有点的 LCA 为链的一个端点)(一种求lca的新方法!!)重子节点 表示其子节点中子树最大的子结点。如果有多个子树最大的子结点,取其一;如果没有

2022-02-03 11:33:14 381

原创 回文自动机

回文自动机一,定义二,状态概述三,引理四,具体理论例题1,P3649 [APIO2014] 回文串特别鸣谢:翁文涛 – 2017 国家候选队论文《回文树及其应用 》特别鸣谢:bzt的题解一,定义PAM 是一个接受且仅接受某个字符串的所有回文子串的中心及右半部分的 DFA。保证回文串为奇回文串,如果不是需要构造,如此PAM就是一颗自动机而非分裂的子树这是一颗成品 PAM ~ 看起来不那么离散嘛二,状态概述PAM 的每个状态都表示一个回文子串,其中包含两个特殊状态, 长度 为 0 和

2022-01-30 11:08:13 1669

原创 后缀平衡树

后缀平衡树一,定义一,定义集合内容:字符串 S 的所有后缀节点意义:字符串的每一个后缀

2022-01-30 00:34:40 380

原创 最小表示法和manacher算法

最小表示法和manacher算法一,最小表示法一,最小表示法字符串的循环同构:表示把字符串的左边第一位移到最后一位,新串再进行这样的操作,得到的一些字符串都是原串的循环同构最小表示:这些循环同构中字典序最小的破环法:这个双指针可以做到 O(n)O(n)O(n)分类:1,s[i+k]>s[j+k]s[i+k]>s[j+k]s[i+k]>s[j+k]:iii 开头的不是最小表示,并且 [i,i+k][i,i+k][i,i+k] 中开头的长度为 nnn 的串也不是易证:此时可以

2022-01-28 18:04:45 703

原创 AC 自动机和字典树

AC 自动机三,AC 自动机1,二次认识 KMP2,二次认识失配数组3,二次认识匹配过程4,多模匹配的典例step 1,建立失配边DAG,并对主串匹配step 2 深搜,进行食物链计数累计获得匹配数目的奥秘三,AC 自动机AC 自动机入门AC 自动机进阶符合我的码风的讲解(实操性比较好)AC自动机= Trie + KMP ,可优化为Trie图KMP : O(n) 求出某一个单词 出现在哪些地方 出现次数AC自动机 : O(n) 求出每一个单词 出现在哪些地方 出现次数故AC自动机是在 K

2022-01-28 11:42:50 431

原创 字符串基础

字符串类型格式总结(亲测有效,save time!!)1.scanf和printf的使用此类型只能用于字符数组的输入输出,格式为:char a[1000];scanf("%s",a);printf("s",a); 特点:printf遇到空格字符不会停止,scanf则会停2.puts和gets此类型只能用于字符数组的输入输出,格式为:char b[100];gets(b);//输入puts(b);//输出特点:puts和gets遇到空格字符不会停止3.string动态字符处理.

2022-01-28 09:17:25 461

原创 后缀自动机基础

文章目录引入:二,自动机思维1,SAM结点的具体信息2,SAM图的特点引入:一、SAM的性质:SAM是个状态机。一个起点,若干终点。原串的所有子串和从SAM起点开始的所有路径一一对应,不重不漏。所以终点就是包含后缀的点。每个点包含若干子串,每个子串都一一对应一条从起点到该点的路径。且这些子串一定是里面最长子串的连续后缀。SAM问题中经常考虑两种边:(1) 普通边,类似于Trie。表示在某个状态所表示的所有子串的后面添加一个字符。(2) Link、Father。表示将某个状态所表示的最短子串的首

2022-01-26 17:50:11 1089

原创 后缀数组从入门到省选

后缀数组从入门到省选一,SA 后缀数组二,LCP 最长公共前缀三,习题1,P4248 【[AHOI2013]差异】1,后缀 SA 的讲解2,LCP 的讲解一,SA 后缀数组后缀数组 sa[i]:表示所有后缀在排完序后,排名为i的后缀在原串中的位置。名次数组rank[i]:表示所有后缀在排序完后,原字符串中第 i 名现在的排名。基于倍增排序之后,直接转化为双关键词基数排序解释:双关键词在缀二,LCP 最长公共前缀三,习题1,P4248 【[AHOI2013]差异】粉兔的讲解求解很多

2022-01-26 11:02:57 354

原创 数学之约数

一,算数基本定理的推论

2022-01-18 16:35:25 54

原创 set与multiset的妙用

一,概述set,不可重结合(保序)底层实现: 红黑树插入复杂度:O(logN)O(log N)O(logN)优势:在只须前驱后继时和大量平衡树开设需求时multiset 可重集(保序)二,例题P5250 【深基17.例5】木材仓库一个木材仓库,里面可以存储各种长度的木材,但是保证没有两个木材的长度是相同的。作为仓库负责人,你有时候会进货,有时候会出货,因此需要维护这个库存。有不超过 100000 条的操作:进货,格式1 Length:在仓库中放入一根长度为 Length(不超过

2021-12-28 20:01:48 537

原创 FHQ_Treap 基础

FHQ_Treap 基础一, 原理介绍二,关键操作1,节点创建:create2,节点复制(不仅仅是权值):copy3,上传:up4,下传:down5,分裂子树:split6,合并子树:mergeAGOH B站讲解,三分钟入门,1天熟练,2天持久化可持久化讲解博客: KevinYu随机化的修改与玄学骗分https://www.luogu.com.cn/blog/xing4c/post-fei-xuan-ping-heng-shu-fhq-treap一, 原理介绍免旋,保存原结构的基础上进行增删,

2021-12-21 17:24:43 403

原创 Spaly基础和应用

splay 基础和应用一,原理简述二,注意点步骤拆析1,splay基本元2,up 向上更新操作3,spin/rotain(左右旋兼容)4,spaly(关键!!!)5, plug (插入)一,原理简述保证每一次操作复杂度 O(log n)O(log~n)O(log n) 的做法是把当前操作对象旋转到树根BST 性质(拓展一下就是顺序的特殊性可以维护)BST是这样的一棵二叉树:对于任意节点,有:它的值不小于它左子树任意节点的值它的值不大于它右子树任意节点的值这个性质就是

2021-12-11 21:40:19 783

原创 前缀和和差分的思想

前缀和和差分的思考一,前缀和一,前缀和新定义性: 可以对需要前缀和的条件和数目进行取舍if (...) a[i]= a[i-1] + ..叠加性:在有序的数组标的前提下,二分就能取得第k大的数,注意和其他计数的结合和的值...

2021-12-09 17:59:27 2039

原创 数列分块基础

数列分块基础一,基础思想一,基础思想1,把数列分成不超过 N\sqrt{N}N​ 个段,每一段的左端点 (i−1)∗N+1(i-1)* \sqrt{N} +1(i−1)∗N​+1 ,右端点为 min(i∗N,N)min(i * \sqrt{N},N)min(i∗N​,N)2,预处理出 v[]v[]v[] 数组,块内延迟,块外暴力: “大段维护,局部朴素"3,操作需求:快速取得某个点的块编号和左端点,右端点位置...

2021-12-09 17:51:47 92

原创 基础莫队算法

基础莫队一,概述二,复杂度i,每块内一,概述1,暴力的改进: 排序离线,query2,原理:右端点递增,左端点双指针出一块,配图二,复杂度i,每块内

2021-12-09 17:08:11 68

原创 权值线段树,动态开合

权值线段树,动态开合一,情景导入一,情景导入对(同一点)多种物品同时进行差分或者求和计数,考虑到每个点都开完整的统计桶数组太浪费,所以每个节点维护动态开点的权线

2021-12-06 19:57:30 144

空空如也

空空如也

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

TA关注的人

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