- 2024-11-20【学习笔记】线段树合并 & 分裂
【学习笔记】线段树合并&分裂前置知识:动态开点线段树用来解决一些对区间拆分合并的问题。线段树合并大概可以替代DSU,但是常数略大。对于线段树分裂合并的空间复杂度问题,一般内存要开\(maxq\timest\times\lceil\log_2maxn\rceil\),其中\(maxq\)为询问次数,\(t\)为每
- 2024-11-19P10304 [THUWC 2020] 道路修建
注意到\(1\)到一个\(b\)子树内的点\(x\)的路径可以拆成\(1\top\toq\tox\)的形式,其中\(1\top\)走树边,\(p\toq\)为在点\(p\)从树边走出去,在点\(q\)走回来,然后\(q\)再走树边走到\(x\)。考虑\(f_i\)为最小的\(d\),满足断掉\(i\)深度为\(d\)的祖先到\(i
- 2024-11-17vue的观察者模式与发布订阅者模式(简单版)
最近在背八股,然后看面试题的时候发现对于vue的响应式原理,观察者模式和发布订阅者模式好像都有,但是搞不清楚,所以看了几篇文章之后,根据GPT做了总结(简单版)目录1.观察者模式(ObserverPattern)观察者模式示例:2.发布-订阅模式(Publish-SubscribePattern)发布-订阅模式示例:3.
- 2024-11-172024.11.16模拟赛
总结:日常犯困,日常去厕所清醒,日常疯狂调试,不日常四个半小时的模拟赛。打了T1的60分暴力+特殊样例,T4的40分暴力+特殊样例,但是T1不知道为什么\(dfs\)爆栈了,所以没骗到特殊样例的分,T4特殊样例式子推错,也没骗到分,所以最后T130分,T420分,共50分,挂了50分。关于T1:四个人,想了四个半小时,摸
- 2024-11-161116及1115模拟赛
\(T1\),大师,我悟了(doge)。树上问题可转化为二维偏序关系,一维是题目中要求的大小关系(也可以是等于),一维是数上某序关系(常为dfs序),用数据结构维护或扫描线等维护一个维,处理另一维。这道题考虑询问时每个结点由哪些节点贡献来。当\(u\)是\(v\)的祖先(dfs序关系)且\(dep[v]-dep[u]=time[v
- 2024-11-15NOIP 备赛:CF 2E 板刷
从\(2024.11.05\)之前的比赛排着刷。CF2028E给定一棵树,根为\(1\)。爱丽丝的起点位于某个顶点\(v\)。她想走出洞口,但不幸的是,红心皇后已经下令处死她。每分钟都会掷一枚公平的硬币。如果硬币是正面,爱丽丝就可以移动到她当前位置的相邻顶点,反之,红心皇后就可以把爱丽丝拉到
- 2024-11-15zkw 线段树-原理及其扩展
前言许多算法的本质是统计。线段树用于统计,是沟通原数组与前缀和的桥梁。《统计的力量》清华大学-张昆玮关于线段树前置知识:线段树OIWiki。线段树是一种专门维护区间问题的数据结构。线段树对信息进行二进制化处理并在树形结构上维护,以此让处理速度达到\(O(\log{n})\)
- 2024-11-14NOIP 模拟赛 #20
已经好久没写模拟赛题解了啊。。。A.邻间的骰子之舞一个结论,可以打表,每一次复制后跟的粘贴数量要尽量相同,差不超过1,所以枚举复制了几次,然后二分最大的出来答案小于\(n\)的数\(mid\),然后枚举多少个复制后的粘贴数为\(mid+1\),出来的答案可以\(O(1)\)算,大于\(n\)直接输出
- 2024-11-14NOIP2024 前集训:MX 炼石计划 NOIP 模拟赛 20
前言今天不知道为啥去打MX了,bug不少啊,包括但不限于赛时能通过自己主页看自己题过没过,赛时可以进入“补题”的比赛交从而直接成IOI赛制,文件还有点问题?0+100+12+0,T1读假题:\(\ge×,>√\),喜提爆零,但是本来就不会正解,我去我表都打出来了不知道二分??!?!!?不打T4是错误的,乱搞能得的分
- 2024-11-14MX 炼石计划 NOIP 模拟赛20(我真做过1~19吗?)
MX炼石计划NOIP模拟赛#20T1邻间的骰子之舞二分答案,发现性质,签到,过。记得开__int128没开,挂30.码:CODE#include<bits/stdc++.h>typedeflonglongll;usingnamespacestd;constintN=2e5+100;#ifdeflinux#definegetchargetchar_unlocked#define
- 2024-11-14CodeCraft-21 and Codeforces Round 711 (Div. 2) F. Christmas Game【阶梯博弈、换根 DP】
这道题目是比较经典的树上阶梯博弈。设一个点的深度是\(dep_i\),如果两个点\(i,j\)满足\(dep_i\not\equivdep_j\modk\),则两个点对答案的影响是完全独立的。我们可以把图拆分为\(k\)部分,并且按照原图中的祖先关系把新图连接为\(k\)棵树。对于一个点\(i\),在新图中的深度为\(dep_
- 2024-11-13揭秘!Vue3.5响应式重构如何让内存占用减少56%
前言Vue3.5版本又将响应式给重构了,重构后的响应式系统主要有两部分组成: 双向链表和版本计数。我们在前两篇文章中我们已经讲过了,这篇文章我们来讲讲为什么这次重构能够让内存占用减少56%。为什么说“又”将响应式重构了因为在之前的Vue3.4版本中刚刚将响应式给重构了,这
- 2024-11-13lca模板
https://www.luogu.com.cn/problem/P1967#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'#definexfirst#defineysecondusingnamespacestd;constintN=6e4+10,mod=998244353;constintLOGN=20;typedefpair<int,int
- 2024-11-13揭秘!Vue3.5响应式重构如何让内存占用减少56%
前言Vue3.5版本又将响应式给重构了,重构后的响应式系统主要有两部分组成:双向链表和版本计数。我们在前两篇文章中我们已经讲过了双向链表和版本计数,这篇文章我们来讲讲为什么这次重构能够让内存占用减少56%。欧阳年底也要毕业了,加入欧阳的面试交流群(分享内推信息)、高质量vue
- 2024-11-112028E - Alice's Adventures in the Rabbit Hole
可以先从一条链的情况开始观察,然后发现每次都会选深度最小的子节点(minf(v)),可以看作一个短链剖分,不过我不是这么写的g(v)表示的是f(v)是f(u)的几分之几我推的式子是这两个,但是我没法证明g(v)不会等于2使得分母为0但是我觉得因为g(x)一定是合法的所以显然2-g(v)不会为0\(f(x)=\frac
- 2024-11-11计算特定条件下树的公共祖先的深度和
蟠桃树【算法赛】#include<bits/stdc++.h>#defineintlonglong#definemod998244353usingnamespacestd;usingpii=pair<int,int>;vector<int>tr[100005];intn;strings;intans;intcnt[100005][2];voiddfs(intx,intfa,intdep){
- 2024-11-11K-D Tree
K-DTree细节KDT和树套树并非等价,树套树一般是时间\(O(n\log^2n)\),空间\(O(n\logn)\)的,KDT是时间\(O(n\logn+n\sqrtn)\)(修改+查询),空间\(O(n)\)子树递归时,值域越界判断不要像线段树一样写\(L<=mid,R>mid\),而是转到儿子去写,不然会报错,因为一层只判一个维度,另一个维度可能越界,
- 2024-11-09将给定的表达式树(二叉链表存储)转换为等价的中缀表达式(递归)
3765.表达式树可以拿这题验证自己的代码对不对ps:这里不是这题的答案,参照代码思路写即可voidBtreeToe(Btree*root){ BtreeToExp(root,1);//根的高度为1 }voidBtreeToExp(Btree*root,intdep){ if(root==NULL)return;//如果是空结点返回 elseif(!root->lef
- 2024-11-08题解:P11249 [GESP202409 七级] 小杨寻宝
题目显然等价于问所有宝箱是否在一条链上。稍微转化一下题意,即我们现在要找到一条链,使得这条链上有宝物的节点数量尽可能多。想到这里我们发现这个和树的直径比较相似,那么我们直接大胆将深度定义为从根到这个节点上有宝箱节点的数量,然后做一遍树的直径。最后判断直径长度是否等
- 2024-11-08zkw 线段树-原理及其扩展
前言许多算法的本质是统计。线段树用于统计,是沟通原数组与前缀和的桥梁。《统计的力量》清华大学-张昆玮关于线段树前置知识:线段树OIWiki。线段树是一种专门维护区间问题的数据结构。线段树对信息进行二进制化处理并在树形结构上维护,以此让处理速度达到\(O(\log{n})\)
- 2024-11-06IOI 2011 Race
[IOI2011]Race题目描述给一棵树,每条边有权。求一条简单路径,权值和等于\(k\),且边的数量最小。输入格式第一行包含两个整数\(n,k\),表示树的大小与要求找到的路径的边权和。接下来\(n-1\)行,每行三个整数\(u_i,v_i,w_i\),代表有一条连接\(u_i\)与\(v_i\),边权为\(w_i\)
- 2024-11-06牛客周赛 Round 66 G
G.小苯的数位MEX思路比较模板的数位dp,虽然我不会代码#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'usingll=longlong;usingull=unsignedlonglong;usingpii=pair<int,int>;usingpiii=pair<int,pii>;usingpll=pair&l
- 2024-11-02P3577 [POI2014] TUR-Tourism
P3577[POI2014]TUR-Tourism可能很多人看到这道题既可以从父亲更新到儿子,又可以从儿子更新到父亲的时候,很多人都跟我一样是这样的:于是这里分享一下我的一种思考。直径\(\le10\),可以先求出DFS生成森林,这样树高不超过\(10\)且没有横叉边,我们使返祖边是通过祖先限制后代,
- 2024-11-02荣耀2025届校园招聘 AI工程师-NLP大模型 笔试
目录1.第一题2.第二题3.第三题⏰时间:2024/10/09