son
  • 2024-07-0201字典树和可持久化01字典树
    01字典树01字典树是一种只有0和1两种边的字典树。可以解决查询第\(k\)小,查询\(x\)是第几小等问题。查询第\(k\)小可以把输入的数转成等长二进制,然后插入01字典树。比如将\([0,0,1,3,3]\)插入字典树:这里红色数字表示以该段为前缀的数的个数,黑色表示对应的数。假设我
  • 2024-07-02平衡树专题Splay
    写在前面:部分来自孙宝(@Steven24)的博客,表示感谢。认识什么是Splay就是BST的一种,整体效率是很高的,均摊的次数是O(logn)级别的。基本操作就是把节点旋转到BST的root,从而改善BST的平衡性,但是很多人会在旋转中转晕建议找个动图看看,或是上B站找个几分钟的视频看看就理解了。烧烤
  • 2024-06-30【简易版tinySTL】 红黑树- 定义, 插入, 构建
    文章目录旋转左旋右旋左旋右旋代码实现红黑树的基本性质红黑树的插入红黑树的插入示例红黑树修复代码实现参考资料旋转对于一个平衡二叉搜索树,左子树高度为4,右子树高度为2,它们的高度差为2,破坏了平衡性(高度差<2才算平衡,因此需要调整二叉树使其平衡)二叉树最基本的
  • 2024-06-18Part 4.4 树形动态规划
    树形动态规划,即在树上进行的动态规划。因为树的递归性质,树形动态规划一般都是递归求解的。没有上司的舞会题目描述某大学有nnn个职员,编号为
  • 2024-06-13洛谷 P2015 二叉苹果树
    题目链接:二叉苹果树思路    本题使用链式向前星存储树上的边,然后DFS搜索+简单dp。    dp数组,dp[i][j]表示节点i及其子树保留k根树枝得到的最大苹果数。son数组存储当前节点的孩子节点的编号和当前节点与孩子节点之间的树枝上的苹果个数。    对于dp递
  • 2024-06-10DP(一)
    前言习题博客:link。因为各种原因,这个博客是赶出来的,所以大概率会有没讲清楚或者讲错了的情况,请大家及时指出。因为个人不是非常擅长于DP,可能很难判别一道题的好坏,所以可能存在几道史题在题单中,请大家谅解。这篇博客理论上仅限于讲解例题,大部分习题的题解请移步至配套博客查看
  • 2024-06-08做题笔记
    杂题DPAbandoningRoads看到\(n\leq70\),想一下朴素状压设\(f_{S,u}\),\(S\)表示处理完的连通块状态,\(u\)表示当前的节点因为只有两种边权,所以可以双队列求最短路,所以我们有了一个天然的\(O(2^nm)\)的做法无法通过捏\(m\)肯定没办法省略了那我们考虑减少\(2
  • 2024-06-03java多态——面向对象进阶
    学习多态之前要先了解继承定义:    对象的多种形态。(就是爸爸管儿子)例子:Fatherf=newSon(); 这里的Father是父类,Son是继承父类Father的子类应用场景/好处:    使用父类型作为参数,可以接受所有子类对象,体现多态的拓展性与遍历(儿子太多,不好管,没事,可以找
  • 2024-06-03P10536 [Opoi 2024] 二十六点 题解
    比较直接的做法。当\(P_x=1\)时显然可以暴力DP,设\(f_{x,c}\)表示\(x\)的子树中以\(c\)开头的最长不下降子序列的长度。直接转移即可。\(P_x\neq1\)的时候呢?我们发现,所谓“忽略掉这些路径中的第\(2\)到第\(P_x\)个的点”,代表的就是按照深度转移,大概就是这样:
  • 2024-06-01ACWing算法基础课刷题记录2024-06-01--2day
    831.KMP字符串给定一个字符串 S
  • 2024-05-31【题解】UOJ#284 快乐游戏鸡
    题目大意给出一棵有\(n\)个节点的树,编号为\(i\)的点权为\(w_i\),在树上通过一条边需要花费时间\(1\),如果能通过一个点权为\(w_i\)的点当且仅当此时的死亡次数大于等于\(w_i\),否则会立即回到起点并且死亡次数加一。给出\(q\)组询问,每组询问给出起点\(s\)和终点\(t\),
  • 2024-05-29LCT 模板
    1constintN=1e5+5;23inta[N];45structLCT{6structTree{7intson[2],tag,val,fa;8}tr[N];910voidinit(intro){11tr[ro].son[0]=tr[ro].son[1]=tr[ro].fa=tr[ro].val=0;12
  • 2024-05-26Codeforces Round 947 (Div. 1 + Div. 2) E. Chain Queries
    本来决定开摆养生不打的,但11点半的时候点进去看到这个题是个疑似DS,写题的欲望瞬间高涨,然后就40min写了这个题然而赛中并不能提交,只好等到第二天早上再交一发,没想到还WA了一发才过首先这题如果我们能确定当前黑色点集的链的两个端点\(x,y\)的话,这个题就非常显然了只需要求出\((x
  • 2024-05-25L2-038 病毒溯源
    详解代码#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;constintN=10010,M=10010;intn;inth[N],e[M],ne[M],idx;//邻接表,h表示顶点,e表示当前边的终点,ne表示下一条边,idx当前边的编号intson[N];//每个点的儿子是谁bo
  • 2024-05-22树剖(不太会)
    前情提要,我主要看的是这位大佬的讲解,用的是谷的代码,所以会有点奇怪大概就是这么个意思dfs1用来处理树的dfs序,处理出重链大小和对应的重儿子voiddfs1(intnow){ son[now]=-1; siz[now]=1; for(inti=head[now];i;i=edge[i].from){ intto=edge[i].to; if(dep[to])c
  • 2024-05-22难存的情缘&货车运输
    事先说明,参考的oceans_of_stars,顺便%一下(有事他背锅)一个求最大,一个求最小,没啥好说的,拿难存的情缘举例说明边权如何转点权一天机房的夜晚,无数人在MC里奋斗着。。。大家都知道矿产对于MC来说是多么的重要,但由于矿越挖越少,勇士们不得不跑到更远的地方挖矿,但这样路途上就会花费相
  • 2024-05-19Narrative writing revision
    ThestoryIchose:Goodorbad?Thepointofviewofthestory:ThethirdpointofviewThepointofviewofmystory:Thefirstpointofview.Script:Longago,mysonandIlivedinafarawaytownneartheChineseborder.Wefarmedthelandandlivedamost
  • 2024-05-18Narrative writing revision
    ABlessinginDisguiseI’manoldmanlivedinaremotetownneartheChineseborderwithmysonintheWarringStatesTimes.Initially,wefarmedthelandwhilelivingaprettypeacefullife.Onenight,therewasaterriblestormwhilethewindswhistlin
  • 2024-05-18从启发式合并到Dsu on Tree
    从启发式合并到DsuonTree传统启发式合并[HNOI2009]梦幻布丁题目描述\(n\)个布丁摆成一行,进行\(m\)次操作。每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色。例如,颜色分别为\(1,2,2,1\)的四个布丁一共有\(3\)段颜色.输入格式第一行是两
  • 2024-05-16字典树模板
    码:点击查看代码structNode{boolisend;intson[26];intnum;}tir[N];inttircnt=1;voidtir_insert(strings){intnow=0;for(inti=0;i<s.size();i++){intch=s[i]-'a';if(tir[now].son[ch]==0)
  • 2024-05-15树链剖分 学习笔记
    裂缝中的阳光-林俊杰头图有多少创伤卡在咽喉有多少眼泪滴湿枕头有多少你觉得不能够被懂的痛只能沉默有多少夜晚没有尽头有多少的寂寞无人诉说有多少次的梦还没做已成空等到黑夜翻面之后会是新的白昼等到海啸退去之后只是潮起潮落别到最后你才发觉心里头的
  • 2024-05-14树链剖分 学习笔记
    树链剖分学习笔记时更。还没开始学,放个板子先。板子#include<bits/stdc++.h>#definefo(x,y,z)for(int(x)=(y);(x)<=(z);(x)++)#definefu(x,y,z)for(int(x)=(y);(x)>=(z);(x)--)typedeflonglongll;inlineintqr(){ charch=getchar();intx=0,f=1; for(;ch
  • 2024-05-11ABC353
    不知道为啥有断更了一周...Ewoc,怎么跟我出的题目这么像先把字符串扔到一个Trie里面,然后对于每一个点我们考虑这一个点到根节点组成的字符串能是多少对字符串的最长公共前缀。我们定义\(cnt_u\)表示共有多少个字符串的结尾在以\(u\)为根的子树内。对于\(u\)节点,其贡献
  • 2024-05-11Good or bad?
    ThestoryIchose:Goodorbad?Thepointofviewofthestory:ThethirdpointofviewThepointofviewofmystory:Thefirstpointofview.Script:Longago,mysonandIlivedinafarawaytownneartheChineseborder.Wefarmedthelandandlivedamost
  • 2024-05-08cf396c-ti-jie
    CF396C思路对于一个点维护$b_i=a_i-a_{fa_i}$。对于操作一,等价于$b_u$加$x$,$u$的子树不含$u$的每个点和父亲的差都减$k$。对于操作二,等价于从根到$u$路径上的$b_x$的和。同P3178,子树加,路径查,树剖加线段树。codeintn,q;inthead[maxn],tot;structnd{ intnxt