摘要: 并查集撤销操作 并查集撤销操作 路径压缩会破坏原本的树结构,使得删除操作变得困难,所以使用按秩合并。 有n个元素,将点x从他当前所在的集合中分离,可以建立一个新的点idx=n++,将fa[x]=idx。 #include<bits/stdc++.h> #define MAXN 200100 using namesp 阅读全文
posted @ 2023-10-31 16:49 DAIANZE 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 洛谷P9349 题意 一种区间覆盖操作,可以考虑直接无脑线段树,复杂度为\(O(nlog_n)\)。 但是观察后发现可以开一个桶,记录这个数在序列中出现的最后一次的下标。循环扫一遍原序列,从小到大对于每一个a[i],使得下标i到m[a[i]]的区间全部覆盖为a[i]。每次覆盖一个小区间后,因为前面的 阅读全文
posted @ 2023-09-22 15:13 DAIANZE 阅读(39) 评论(0) 推荐(0) 编辑
摘要: [CSP-S 2022] 策略游戏(线段树代码) [CSP-S 2022] 策略游戏 题意: 给定两个序列A,B。每次先从A序列规定区间内取出一个数,再从B序列规定区间内取一个数,答案为两数乘积。A希望答案尽可能大,B希望答案尽可能小。 思路: 考虑特殊性质 保证 \(A_1,B_1>0\) 显然对于每次询问,A取区间最大值,B取区间最小值。 线段 阅读全文
posted @ 2023-09-07 16:53 DAIANZE 阅读(239) 评论(0) 推荐(0) 编辑
摘要: CSP普及组模板整合(自用) ## 快速幂 ```cpp #include #include #define int long long using namespace std; int ksm(int b,int p,int k){ int ans=1; while(p){ if(p&1) ans=ans%k*b%k; b=b 阅读全文
posted @ 2022-09-20 15:30 DAIANZE 阅读(64) 评论(0) 推荐(0) 编辑
摘要: STL常用基础模板 STL模板: 数据结构 堆 头文件:#include<queue> 大根堆:priority_queue<int> q; 小根堆:priority_queue<int,vector<int>,greater<int> > q; 操作: q.top()//取得堆顶元素,并不会弹出 q.pop()//弹 阅读全文
posted @ 2022-09-19 20:16 DAIANZE 阅读(89) 评论(0) 推荐(0) 编辑
摘要: CSP初赛易错易考基础知识点(自用) 文章为众多博客内容的整合,参考的博客会在文末放出链接 三目运算符: (表达式)?(成立操作):(不成立操作)。 二叉树: 前/先序遍历:根 \(\rightarrow\) 左子树/儿子 \(\rightarrow\) 右子树/儿子。 中序遍历:左子树/儿子 \(\rightarrow\) 根 \(\ 阅读全文
posted @ 2022-09-15 15:31 DAIANZE 阅读(482) 评论(0) 推荐(0) 编辑
摘要: CF915E Physical Education Lessons(动态开点线段树/珂朵莉树) CF915E 洛谷链接 题目大意(懒狗直接偷的题面): 从现在到学期结束还有 $n$ 天(从 $1$ 到 $n$ 编号),他们一开始都是工作日。接下来学校的工作人员会依次发出 $q$ 个指令,每个指令可以用三个参数 $l,r,k$ 描述: 如果 $k=1$,那么从 $l$ 到 $r$ (包含端点)的 阅读全文
posted @ 2022-09-13 16:20 DAIANZE 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 线段树上维护状压(位运算) 洛谷P1558 分析: 颜色类型只有 \(30\) 种,可以利用二进制进行状压。 线段树维护一个二进制数表示区间的颜色为哪一种,将这个区间的颜色进行状压,每一种颜色对应二进制数的某一位。合并区间时将两个子节点的数按位或即可,题目区间修改为直接覆盖,统计答案时只需统计对应区间的数有多少个 \(1\) 阅读全文
posted @ 2022-09-08 20:17 DAIANZE 阅读(43) 评论(0) 推荐(0) 编辑
摘要: CF438D The Child and Sequence(线段树区间暴力取模) CF438D 阅读全文
posted @ 2022-09-06 21:10 DAIANZE 阅读(33) 评论(0) 推荐(0) 编辑
摘要: P4145/#6281/GSS4三题题解(线段树区间开根) 线段树区间开根号 阅读全文
posted @ 2022-09-05 14:10 DAIANZE 阅读(129) 评论(0) 推荐(0) 编辑
摘要: CF446C(线段树+斐波那契) 线段树+斐波那契 阅读全文
posted @ 2022-09-04 20:10 DAIANZE 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 线段树板子 线段树基础题 阅读全文
posted @ 2022-09-02 10:15 DAIANZE 阅读(24) 评论(0) 推荐(0) 编辑
摘要: LYOI#1166. Cat function(线段树) 猫猫函数 阅读全文
posted @ 2022-08-30 15:39 DAIANZE 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 庞娋琪物理课件(非公开) psq 阅读全文
posted @ 2022-08-29 15:56 DAIANZE 阅读(2) 评论(2) 推荐(0) 编辑
摘要: 翠啵涵物理课件(非公开) cbh 阅读全文
posted @ 2022-08-26 17:35 DAIANZE 阅读(2) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2022-08-26 11:27 DAIANZE 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 婶子蕊物理课件(非公开) szr 阅读全文
posted @ 2022-08-24 17:24 DAIANZE 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 计算几何CDQ笔记 1 并集 记A,B是两个集合,以属于A或属于B的元素为元素的集合称为A与B的并(集),记作A∪B(或B∪A),读作“A并B”(或“B并A”),即A∪B={x|x∈A,或x∈B} 。 2 交集 记A,B是两个集合,以属于A且属于B的元素为元素的集合称为A与B的交(集),记作A∩B(或B∩A),读作“A 阅读全文
posted @ 2022-08-21 21:22 DAIANZE 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 洛谷P6812「MCOI-02」Ancestor 先辈 题解(线段树+差分) 恶臭序列 阅读全文
posted @ 2022-08-14 19:25 DAIANZE 阅读(55) 评论(0) 推荐(0) 编辑
摘要: qbxt7月笔记 二分 int l,r; while(l<=r){ int mid=(l+r)/2;//>>1 if(ok(mid))l=mid+1; else r=mid-1; } ans=l; lower_bound()和upper_bound() 二分查找 二分查找需要排序 右端点开区间(right需要+1) 阅读全文
posted @ 2021-07-17 19:54 DAIANZE 阅读(39) 评论(0) 推荐(0) 编辑
摘要: zhxのDP讲 zhxのDP讲 DP基础例题 1. 斐波那契数列 f[1]=1;//第0项和第1项 f[0]=0; //记忆化搜索 int dp(int n)//斐波那契数列第n项 { //g[i]表示f[i]有没有计算过 if(n<=1)return n; if(g[n])return f[n]; g[n]=tr 阅读全文
posted @ 2021-07-17 19:36 DAIANZE 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 最长上升子序列相关问题笔记 //求最长上升子序列长度 cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; memset(f,0,sizeof(f)); for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++) if(a[j]>a[i]) f[j]=max(f[ 阅读全文
posted @ 2021-07-17 19:16 DAIANZE 阅读(45) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2020-10-06 13:07 DAIANZE 阅读(70) 评论(2) 推荐(0) 编辑
摘要: 动态规划DP笔记 #动态规划(DP) ——qbxt ###常见: 最优解 方案数 可行解 ###步骤 : 设计状态 推导状态转移方程 确定初始状态 ###题目: ####线性: 最长不下降子序列 花匠NOIP2013 摆渡车 NOIP2018 飞扬的小鸟 NOIP2014 ####区间 : 石子合并 凸多边形三角划分 阅读全文
posted @ 2020-10-03 20:32 DAIANZE 阅读(129) 评论(0) 推荐(0) 编辑