son
  • 2025-01-07树链剖分
    更新日志2025/01/07:开工。概念树链剖分,将树剖分成多个不相交的链。视情况,我们选择合适的方式进行剖分。我们往往可以借此解决“路径权值修改”问题,或者对启发式合并有所帮助。方式通常的,对于每个节点,我们视自己的需求,每次选择最优的一个子节点,加入其链,而其他子节点分
  • 2025-01-07树的拓扑序计数
    前几天模拟赛遇到的,发现叫这个。对于一个排列\(P\)和一棵有根树,有多少中排列满足所有父亲位置都在儿子位置后面。首先有一个树形DP:\[\begin{aligned}f_u=\prod_{v\inson_u}{size_{u,v}-1\choosesize_v}f_v\end{aligned}\]\(size_{u,v}\)表示\(u\)统计到儿子\(v\)
  • 2025-01-04P5680 [GZOI2017] 共享单车 题解
    题目传送门前置知识最短路|最近公共祖先|虚树解法题目中所说的回收路线树即以\(k\)为根节点的最短路径树,可以使用Dijkstra构建。标记回收区域本质上是对回收区域构建虚树,然后就和luoguP2495[SDOI2011]消耗战基本一致了,根据儿子节点的投放状态进行树形D
  • 2025-01-03DP优化——长剖优化DP
    长链剖分在长链剖分中重儿子的定义为:子树深度最大的儿子。其余就和重剖一样了。下面是核心代码:voiddfs(intu){ mxdep[u]=0;//子树内最大深度 for(inti=head[u];i;i=Next[i]){ intv=to[i]; if(v==fa[u])continue; fa[v]=u; dfs(v); if(mxdep[v]>=mxdep[son[
  • 2024-12-30FHQ-Treap
    \(FHQ-Treap\)是无旋平衡树的一种,码量相对少,并且简单易懂。一下简称\(treap\)(注意还有别的\(treap\),但是在本文中仅指\(FHQ-Treap\))。\(treap\)仅需要合并和分裂。\(treap\)结合了小根堆(父亲节点权值比儿子小)和二叉查找树(左子树的值比根小,右子树的值比根大)的特性。
  • 2024-12-29[COCI2021-2022#1] Logičari
    前言终于可以有底气的显然了思路这道题在考场上时间不够了,但我是做得出来的吧在这推一遍,检查一下首先套路的,先处理树在处理环对于树上的情况,令\(f_{u,0/1,0/1}\)表示\(u\)子树,是否选择\(u\)为关键点,\(u\)的儿子中是否有关键点(显然的,如果有一定只有
  • 2024-12-26万物之父和装箱拆箱
    万物之父的基本概念关键字objectobject是所有类型的基类可以利用里氏替换原则,用object容器装所有对象可以用来表示不确定类型,作为函数的参数类型obejct的使用//引用类型objecto=newSon();Sons=newSon();o=s;//用object装载之后,用is和as判断和转换if(oi
  • 2024-12-25P3313 [SDOI2014] 旅行
    P3313[SDOI2014]旅行题意简述:给一颗树,点有点权以及颜色,要求实现四种操作:1.修改某点点权2.修改某点颜色3.求一条树上最短路(x,y)上颜色与x,y都相同的点的点权和,保证x,y颜色相同4.求一条树上最短路(x,y)上颜色与x,y都相同的点的点权最大值,保证x,y颜色相同$1\len,m
  • 2024-12-25就像STL那样:封装的动态开点线段树(用于线段树合并)
    Preface起因是这个万恶的\(P9067\),一个数据结构题,当时才搞了01字典树的板子,想\(trytry\)合并的题的,然后就搜到了这道。(虽然最后完全和这个没有关系)。然后感觉用线段树合并做就可以了,于是抄了个之前封装的一个板子,但是一点都不好用(sad)。空间方面又是头疼,感觉封装了又好像没有封装
  • 2024-12-22题解:AT_abc294_g [ABC294G] Distance Queries on a Tree
    题目链接https://www.luogu.com.cn/problem/AT_abc294_g分析先不考虑修改。设\(dist_i\)表示从根节点到第\(i\)号节点的距离,\(\operatorname{lca(u,v)}\)表示树上两点\(u,v\)的最近公共祖先,那么\(u,v\)两点间的距离就是\((dist_{\operatorname{lca(u,v)}}-dist_u)+(
  • 2024-12-18【内向基环树】LeetCode 2360. 图中的最长环
    题解内向基环树的一个基本特征就是总共有\(n\)个节点和\(n\)条边,且每个节点的出度至多为\(1\),因此本题符合内向基环树的特征。先使用拓扑排序,标记全部的简单环外的节点,剩余的节点就必定是环上的节点。参考代码classSolution{public:intlongestCycle(vector<int>
  • 2024-12-18静态 Top Tree 小记
    TopCluster系列:TopCluster树分块入门学习笔记树分块静态TopTree小记定义簇(Cluster):一个连通边集,每个簇有两个界点。界点、内点:两个簇只会在界点处有交,除了界点外其他点为内点。这两个定义也在TopCluster树分块解释过,下面用\(a(u,v)\)表示含有界点
  • 2024-12-15HarmonyOS Next V2 @Local 和@Param
    HarmonyOSNextV2@Local和@Param@Local背景@Local是harmony应用开发中的v2版本中对标@State的状态管理修饰器,它解决了@State对状态变量更改的检测混乱的问题:@State修饰的状态变量可以是组件内部自己定义的@State修饰的状态也可以由外部父组件传递这样就导致
  • 2024-12-15HarmonyOS Next 关于页面渲染的性能优化方案
    HarmonyOSNext关于页面渲染的性能优化方案HarmonyOSNext应用开发中,用户的使用体验至关重要。其中用户启动APP到呈现页面主要包含三个步骤:框架初始化页面加载布局渲染从页面加载到布局渲染中,主要包含了6个环节:执行页面文件生成页面节点树页面节点树挂载布局渲
  • 2024-12-08CF1540B Tree Array 题解
    CF1540BTreeArray题解首先题目的时间复杂度一定是一个\(O(n^3)\)状物。一定会有一个\(n\)来枚举根节点,那么一个根内要\(O(n^2)\)地解决问题。考虑整个序列的期望是困难的,转而考虑每个点对\((x,y)\)的期望。注意到\((x,y)\)具有父子关系时,它的贡献是确定为\(0/1\)
  • 2024-12-08【知识】树链剖分
    树链剖分思想:将一颗树转换成一段序列,满足树中任意一条路径$\Leftrightarrow$不超过\(\logn\)段区间概念:重儿子​ 一个点的重儿子为它的儿子的子树节点个数最多的那个点。​ 如有多个,任选一个。轻儿子不是重儿子的都为轻儿子重边与重儿子相连的边轻边与
  • 2024-12-06P5007 DDOSvoid 的疑惑 题解
    题目传送门思路树形dp模版题。设\(dp_i\)为\(pos\)的最优解,\(dp2_i\)为只考虑\(pos\)子树时,毒瘤集的数量。可得:\(dp_i=dp_{i}\timesdp2_{son}+dp_{son}\timesdp2_{i}+dp_i+dp_{son}\)\(dp2_i=dp2_{i}\timesdp2_{son}+dp2_{i}+dp2_{son}\)用深搜来更新\(dp\)
  • 2024-12-06P6157 有趣的游戏
    P6157有趣的游戏题意简述:给你一棵树,要求你维护一条连上任意两点\(w_x\)\(mod\)\(w_y\)的最大值,以及在去掉这两个点后的整棵树山任意两点\(w_{x'}\)\(mod\)\(w_{y'}\)的最大值Solution:我们不难发现,在一些数中最大的\(w_x\)\(mod\)\(w_y\)其实就是严格次大值mod最
  • 2024-11-26【DP优化技巧】2. 矩阵加快
    例题来看一道例题。P5024[NOIP2018提高组]保卫王国对于这道题,首先如果没有国王的询问,可以设定状态:\(f_{i,0/1}\)代表以\(i\)为根的子树里面,自己选/不选的最小花费。易得状态转移方程:\[f_{u,0}=\sum_{v\inson_u}f_{v,1}\\f_{u,1}=p_u+\sum_{v\inson_u}\min(f_{v,0},
  • 2024-11-24【MX-S7】梦熊 NOIP 2024 模拟赛 3 & SMOI Round 2(同步赛)
    【MX-S7】梦熊NOIP2024模拟赛3&SMOIRound2(同步赛)\(T1\)luoguP11323【MX-S7-T1】「SMOI-R2」HappyCard\(20pts\)发现可以把「炸弹」也看做「三带一」。先使用「三带一」带走原用于出「单牌」的牌,若「三带一」还有剩余则尝试带走原用于出「对子」的牌,否则直接
  • 2024-11-23动态 DP 学习笔记
    1前言动态DP,简称DDP。用于处理树上带修的简单DP问题。前置知识:树链剖分线段树维护矩阵树形DP2基本做法上模板题:P4719【模板】"动态DP"&动态树分治如果不带修,就是简单的树上DP。设\(f_{i,0}\)表示不选\(i\)点的最大权值,\(f_{i,1}\)表示选\(i\)点并且
  • 2024-12-13词云的制作与展示
        词云图是一种适用于文本数据的可视化图表类型。在词云中,关键词的字号大小或颜色深浅代表了这些词的重要程度。因此它是一种非常直观且美观地呈现文本数据词频分析结果的图表工具。    制作词云是我的一项小组作业,现在我来向大家展示我们(和小伙伴:@红豆粥粥_)
  • 2024-12-13Citus的restart详解
    Citus的restart详解1.命令行restart在ctl.py的restart方法中,获取到集群的信息,然后再获取到要重启节点的信息。cluster=get_dcs(cluster_name,group).get_cluster()members=get_members(cluster,cluster_name,member_names,role,force,'restart',False,g
  • 2024-12-12链表的一步步实现(需有一部分c语言基础)【缓慢更新中
    链表的一步步实现(需有一部分c语言基础)(由于本人上课实在没学懂链表的具体实现步骤,于是写下这篇博客记录学习过程,有兴趣的新手也可以跟着学习1.认识链表的结构&创建简单静态链表并输出数据Q:什么是链表?A:链表是由一系列节点组成,每个节点包含两个域,一个是数据域,用来保存数据,另外一
  • 2024-12-07[题目记录]一本通高手训练-石环
    题意有一个首尾相连的环,元素依次是\(a_1\cdotsa_n\).对于每个\(0\lek<n\),回答是否存在删除\(k\)个相邻元素的方案,使得删除后的环相邻元素不相等(包括首尾元素).\(n\le10^6\).题解必要地简化一下问题,先把原串复制一遍接在后面表示环,删除\(k\)