- 2025-01-06[POJ3237] 树的维护 题解
一眼树链剖分或\(LCT\),由于在学后者所以就写了。取反操作相当于把\(min,max\)取反后交换,所以要维护\(min,max,val\)。时间复杂度\(O(m\logn)\)。#include<bits/stdc++.h>#definefa(x)lct[x].fa#definefl(x)lct[x].fl#definemx(x)lct[x].mx#definemn(x)lct[x]
- 2025-01-05atcoder 杂题 #05
atcoder杂题#05abc340_gLeafColorabc340_fF-S=1abc361_gGoTerritoryabc386_fOperateKabc340_g独立想出了这道题。如果我们确定了子图的叶子,那么这个子图就确定了。又由于叶子的颜色要相同,所以每种颜色的贡献是互相独立的。首先如果一种颜色有\(x\)个点,那
- 2025-01-05CF补题 950-Div.3
CF补题950-Div.3-20250102Dashboard-CodeforcesRound950(Div.3)-CodeforcesA:题目大意:给出一个字符串,要求重复的字母必须\(\gem\),求缺失字母总个数#include<iostream>#include<map>usingnamespacestd;map<char,int>mp;intmain(){ intT; cin>&g
- 2025-01-05[WC2014] 紫荆花之恋 题解
啊啊啊啊啊啊啊啊啊啊啊我终于改完啦啊啊啊啊啊啊啊。因为没有在最开始的时候将所有点设置为已经重构的,所以直接\(R15-R70\)间卡了两三天。似乎也是我第一次大规模使用指针了。这道题假如只有一次询问,就是一道简单淀粉质,直接在根节点建立平衡树,记录\(r_x-dis(x,rt)\),然后找
- 2024-12-29板子
板子合集头文件//5oiR5piv6YKj57u06I6x54m555qE54uX#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;constexprintN=-1;constexprintinf=20241218;stack<char>t;intmain(){// freopen("neuvill
- 2024-12-29红黑树、AA树入门
更好的阅读体验?前言默认读者会基本的BST操作和旋转操作。本文旋转部分的代码。rotate(x)表示将\(x\)节点旋转到其父亲节点的位置。建议阅读:B树红黑树规则红黑树的平衡不靠平衡因子实时监测,和treap的随机值,或像splay的均摊。红黑树的平衡完全靠自身的几条规则。
- 2024-12-29Splay初步
更好的阅读体验?前言前置知识:二叉搜索树其实Splay的实现蛮多的,如果真的要能懂的话建议自己画图理解。加油。基础操作准备操作我们先把节点要维护的先定义出来。子树大小节点的权值左儿子右儿子父亲sizevalch[0]ch[1]fastructnode{intsize,val,
- 2024-12-28并查集
并查集模板:#include<iostream>#include<vector>usingnamespacestd;//初始化父节点数组vector<int>fa;//查找根节点并进行路径压缩intfindParent(intx){if(x==fa[x])returnx;returnfa[x]=findParent(fa[x]);}//合并两个集合voidunionS
- 2024-12-27[题解]P1333 瑞瑞的木棍
P1333瑞瑞的木棍我们将颜色看作节点,每个木棍左右的两个颜色之间连接无向边。可以用并查集维护连通性,每添加一条边\((u,v)\)就合并\(u,v\)所在集合,最终所有节点都在一个集合中\(\iff\)该图联通。在回顾下无向图存在欧拉通路的判定条件,满足其一即可:无向图是欧拉图\(\iff\)非零
- 2024-12-27[题解]UVA10129 单词 Play on Words
UVA10129单词PlayonWords将各字母看做节点,单词的首字母向尾字母连一条有向边。最终如果该图存在欧拉通路,则答案合法。回顾一下欧拉通路的判定:有向图是欧拉图\(\iff\)非零度节点弱连通,每个节点出入度相等有向图是半欧拉图\(\iff\)非零度节点弱连通,恰有一个节点出度\(-\)入
- 2024-12-26省选集训杂题乱写
碎碎念不去做专题做这个是吧?
- 2024-12-25P6779 [Ynoi2009] rla1rmdq 题解
Description给定一棵\(n\)个节点的树,树有边权,与一个长为\(n\)的序列\(a\)。定义节点\(x\)的父亲为\(fa(x)\),根\(rt\)满足\(fa(rt)=rt\)。定义节点\(x\)的深度\(dep(x)\)为其到根简单路径上所有边权和。有\(m\)次操作:1lr:对于\(l\lei\ler\),\(a_i\lef
- 2024-12-25boruvka
boruvka是一种对于完全图求最小生成树很好用的算法。算法流程每轮为当前每个连通块找到与其最近的连通块,并连边,直到只有一个连通块。正确性最后的最小生成树上的每个点,显然都会保留它连出的最短的边。否则断掉现在它连出的一条边,再连最短的边一定更优。那么每轮过后,把一个
- 2024-12-25Atcoder_cf17_final_j Tree MST
这是我的第一道黑题!言归正传,题意是,给定一棵\(n\)个节点的树,现有有一张完全图,两点\(x\),\(y\)之间的边长为\(w_x+w_y+dis_{x,y}\),其中\(dis_{x,y}\)表示\(x\)和\(y\)在树上的距离,求完全图的最小生成树。常规的求最小生成树的算法有\(kruskal\)、\(prim\)。但是这里这
- 2024-12-24[学习笔记] splay
前置:二叉查找树在二叉查找树上做许多操作都十分方便。然而递归树的层数意味着时间复杂度为树高级别。当树是链状时,时间复杂度会退化。各类平衡树的存在大都为了使二叉查找树“平衡”,即高度不会超过\(\logn\)(\(n\)为树的结点个数)。如此以来,在二叉查找树上的操作就有了时间复杂
- 2024-12-23省选图论专题
还没打完数学专题呢就来打这个了。(其实是不会多项式)难度大概升序。GivingAwards注意到一个关键信息:每对人只会被提到一次。所以一定有解。考虑卡bug,假如\(a\)欠\(b\)钱,那么就先让\(b\)取钱再让\(a\)取钱,建边dfs即可,注意图不连通。点此查看代码#include<bits/stdc++.h>usi
- 2024-12-22CF2040D 题解
构造题做得较少,所以性质观察得较慢。值域给的\(2n\)非常诡异,想到考虑\(2\)的倍数。按深度记录下每层结点,发现隔一层依次按\(2\)的倍数填充,即可满足。即:先填奇数层,再填偶数层。但是连续的偶数是不能相邻的,发现当深度在\([2,4]\)时,无论以何顺序按层填充,都会有问题。处
- 2024-12-21jQuery下拉选择框美化插件select-mania
select-mania是一款jQuery下拉选择框美化插件。该插件可以将普通的select下拉选择框转换漂亮的下拉选择框,并且转换后的下拉选择框带搜索功能,可通过AJAX获取数据,带多种主题,还可以自定义主题等。 在线预览 下载 使用方法在页面中引入select-mania.css和select-mania.j
- 2024-12-21高一上十二月下旬日记
12.21鲜花做题纪要LibreOJ121.「离线可过」动态图连通性线段树分治板子。点击查看代码intu[500010],v[500010],w[500010],st[500010],ed[500010],ans[500010];pair<int,int>e[500010];map<pair<int,int>,int>f;structquality{intid,fa,siz;};structDSU
- 2024-12-20jquery loading遮罩层插件
busy-load是一款灵活的jqueryloading遮罩层插件。它可以在加载的时候为容器添加一个遮罩层,并显示loading效果。loader可以是字体图标,图片,文字等,非常灵活方便。在线预览 下载 使用方法在页面中引入jquery和busy-load相关文件。<scriptsrc="http://code.jquery.com/
- 2024-12-20AT_arc151_b A < AP
Tag:并查集,数学题目描述给定一个\(1\simN\)的排列\(P\),找到符合以下条件的\(A\)数组的数量\(\bmod998244353\)。对于\(1\simN\)的每一个\(i\),\(1\leA_i\leM\)。\(A\)数组字典序小于\((A_{P_1},A_{P_2},\cdots,A_{P_n})\)数组。制約$1\\leq\N\\le
- 2024-12-19AT_agc009_d [AGC009D] Uninity 题解
一道妙妙题。一句话题意:求点分树的高度最小值。给所有点填上一个数表示它子树\(k\),考虑一种填法什么时候满足条件,发现当且仅当任意两对值相同的点之间的路径上存在一个权值更大的点。考虑随便找一个点作为根从叶子节点开始贪心填值,每次选择能填的最小值,发现这样填最终的值的最
- 2024-12-172024/12/27 总结
2024/12/27总结模拟赛T1取石子游戏A和B两人玩取石子游戏。一共有n堆石子,第堆有α个石子。A和B轮流取石子,A先取,每次选择一堆然后取任意数量的石子(不能不取)。但是B必须取两次,即取石子的顺序是,ABBABB...。当一方无法取石子,则输掉游戏。假设A和B均绝顶聪明,请判断A是否可以获,胜
- 2024-12-15树形dp专项测试1
A.PromisesICan'tKeep题目意为求以每个点为根时的期望得分的最大值,换根DP即可。式子不太难推,半个小时就出来了。太长了不往这写了。Code#include<bits/stdc++.h>#definelllonglong#defineilinline#defineread(x){\ charch;\ intfu=1;\ while(!isdigit(ch
- 2024-12-15题解:P11389 [COCI 2024/2025 #1] 等级 / Hijerarhija
思路因为一棵树的本质是一个图,所以我们可以认为入度为\(0\)的节点就是这个树的根。所以我们统计有几个根,以及是已经作为根的。最后去统计有多少个根就行了。存储父子关系可以用unordered_map。代码#include<iostream>#include<cstdio>#include<cstring>#include<algori