• 2024-07-05splay-前驱后继
    在平衡树中,经常会让我们查一下一个值的前驱和后继是谁,写两个函数就非常麻烦好吧,所以这里咱们用一点小技巧来让他变成一个函数(这里的前驱后继定义时包括与本身相等的值)代码点击查看代码intnxt(intk) { if(!m[rt].size)return0; introot=rt; while(k!=m[root].val&
  • 2024-07-04splay-前驱后继
    在平衡树中,经常会让我们查一下一个值的前驱或后继是谁,写两个函数就非常麻烦好吧,所以这里咱们用一点小技巧来让他变成一个函数(这里的前驱后继定义时包括与本身相等的值)代码点击查看代码intnxt(intk) { if(!m[rt].size)return0; introot=rt; while(k!=m[root].val&
  • 2024-06-175.3.2_3 在线索二叉树中找前驱后继
  • 2024-06-10[AGC002E] Candy Piles
    题意简述有\(n\)堆石子,第\(i\)堆石子有\(a_i\)个。两个人博弈,每次可以选择以下两种操作之一:拿走石子数目最大的那堆石子(若有多个只拿一堆)在每堆石子中都拿走一个石子无法操作的人胜利,求谁必胜(先手First后手Second)\(n\le10^5,a_i\le10^9\)。分析操作二不会改变
  • 2024-06-04数据结构复习笔记5.3:线索二叉树
    1.前言        在n个结点的⼆叉链表中,必定有n+1个空链域。⽽遍历运算是最重要的,也是最常⽤的运算⽅法,之前的⽆论是递归与非递归的算法实现遍历效率其实都不算⾼。        现有⼀棵结点数⽬为n的⼆叉树,采⽤⼆叉链表的形式存储。对于每个结点均有指向左右孩⼦
  • 2024-05-16期望DP
    基本模型对于任意状态A,已知①状态A所有后继状态②设从状态A转移到后继状态B的概率是P(A,B),则∑P(A,B)=1③从状态A转移到状态B的花费是W(A,B)求解:从起始状态S到终止状态T的期望花费求解的基本模式设E(A)表示从状态A到终止状态T的期望花费,初值:E(T)=0
  • 2024-04-13链表1: 静态单链表
    链表1:静态单链表单链表的结构链表包含了数据域与指针域,数据域存储数据,指针域存储下一个结点的地址链表的特点链表的优势在于数据的删改,在链表中查询第$i$个元素需要从第一个结点开始遍历链表,,因此在数据的顺序读取中链表的优势不如数组.链表的插入操作设newN
  • 2024-02-21链表
    链表特性通过每个结点记录之后或之前结点的值,那么就可以知道所有结点的排列顺序。插入如果要在链表中插入一个元素。那么就可以将前面的元素的后缀(指的是之后结点的值)改成插入的元素,插入元素的后缀顶上前面元素的后缀。voidinsret(intx,inty){ nxet[y]=next[x]; next[
  • 2024-02-16博弈论
    博弈论公平组合游戏定义两名玩家交替行动游戏会在有限步数内结束游戏结果只有输赢,没有平局游戏的发展是确定性的,不存在概率因素概率因素:掷色子游戏的局面、规则、可选行动对两名玩家来说是完全相同的游戏的局面、规则、可选行动不同:棋类游戏​ 性质:游戏
  • 2024-02-09三、四元环计数
    无向图三元环计数:定义一个有向图\(G'\):把\(G\)中每条边改成从度数小的点指向度数大的点的有向边。性质:\(G'\)中每个点的出度\(\le2\sqrtm\)。证明:若\(u\)的出度\(>2\sqrtm\),则显然\(u\)在原图中的度数\(>2\sqrtm\)。所以\(u\)指向的至少\(2\sqrtm+1\)个
  • 2024-01-28文心一言 VS 讯飞星火 VS chatgpt (188)-- 算法导论14.1 5题
    五、用go语言,给定n个元素的顺序统计树中的一个元素x和一个自然数i,如何在O(lgn)的时间内确定工在该树线性序中的第i个后继?文心一言,代码正常运行:在顺序统计树(也称为平衡二叉搜索树)中,要找到一个元素x的第i个后继,我们可以使用以下步骤:从根节点开始,使用递归或迭代方式沿
  • 2024-01-229.2 比赛总结
    E到H。T2简单树上DP。T4原题。首先将一个操作拆成两个操作,每个操作加入\((x,y,z),(x+1,y+1,z+2)\dots\)。用堆(队列也行)模拟kruskal的过程,讨论一条边之后,将它的后继加入堆。可以发现,如果一条边无法使用,则可以不加入它的后继,因为树上连接这两个点的路径上的边的边权都
  • 2024-01-08数据结构线性表之【循环链表、双向链表】
    循环链表在单链表中,每个结点都带有一个指向其后继结点的指针,但因为表尾元素没有后继结点,所以表尾结点的指针域为空,表明它不指向任何结点,并表示这个结点是最后一个结点。现在修改这个约定,将表尾结点的指针指回头结点,从而形成一类新链表。在这样的链表中,从任何一个结点出发并沿着指针
  • 2023-12-29【数据结构】C语言实现双链表的基本操作
    双链表导言大家好,很高兴又和大家见面啦!!!经过前面几个篇章的内容分享,相信大家对顺序表和单链表的基本操作都已经熟练掌握了。今天咱们将继续分享线性表的链式存储的第二种形式——双链表。在今天的内容中,咱们将介绍双链表的创建以及一些基本操作,接下来跟我一起来看看吧!一、单链表与双
  • 2023-12-27LOJ-3033/QOJ-4896/南外集训 2023.12.26 T3 Alice、Bob 与 DFS
    恶魔的低语,会送来天堂的福音。题意有一个\(n\)个点的有向无环图,第\(i\)(\(1\lei\len\))个点有mi条有序的出边\(e_{i,1},e_{i,2},...,e_{i,m_i}\)。每个点要么是黑点,要么是白点。有\(k\)个程序,第\(i\)个程序形如从\(r_i\)开始,对\(r_i\)的直接或间接后继
  • 2023-12-18文心一言 VS 讯飞星火 VS chatgpt (159)-- 算法导论12.3 6题
    六、用go语言,当TREE-DELETE中的结点z有两个孩子时,应该选择结点y作为它的前驱,而不是作为它的后继。如果这样做,对TREE-DELETE应该做些什么必要的修改?一些人提出了一个公平策略,为前驱和后继赋予相等的优先级,这样得到了较好的实验性能。如何对TREE-DELETE进行修改来实现这
  • 2023-12-07SG定理证明
    前置知识有向图游戏概念。单个有向图游戏中\(\textrm{SG}\)函数的求值(\(\textrm{mex}\)运算)。以上内容请自行查阅,这里不会多说。前言本文受启发于OIWiki,采用相同的数学归纳法进行证明,但对计算的原理进行了补充,也补足了一些细节。网上许多\(\textrm{SG}\)定理的证明只
  • 2023-11-12P7880 [Ynoi2006] rldcot
    lxl上课讲的题,来写个题解。样例很强,赞美lxl!青蛙,呱????。\(\text{rldcot}=\text{rangelcadepthcountontree}\)。/yiw(猜的)。题目传送门给出一棵\(n\)个点的有根树。定义\(\text{LCA}(x,y)\)为\(x,y\)两点树上的最近公共祖先,\(dep_x\)为\(x\)到根路径上的
  • 2023-11-07ReentrantLock源码笔记 - 释放锁(JDK 1.8)
    ReentrantLock源码学习-释放锁(unlock)上次谈到了利用ReentrantLock的非公平和公平加锁方式,那么接下来看看释放锁的流程首先调用ReentrantLock的unlock方法publicvoidunlock(){sync.release(1);}然后会调用AbstractQueuedSynchronizer(AQS)的release方法,在这个方法
  • 2023-10-12题解 AtCoder wtf22_day1_b【Non-Overlapping Swaps】
    题解AtCoderwtf22_day1_b【Non-OverlappingSwaps】problem给定一个排列,要求交换最多\(n-1\)对元素,使得这个排列变成[1,2,...,n]的有序排列。当然没有那么简单,对于交换还是有限制的,对于相邻的两次交换,不妨叫做\((l_i,r_i)\)和\((l_{i+1},r_{i+1})\),必须满足这两个交
  • 2023-09-21系统分析师学习笔记(17) PV操作
    1.PV操作是与活动的前驱与后继相关的。P操作-前驱活动,-1;V操作-后继活动,+1;2.做题时,一个活动,首先要将所有前驱活动的信号量进行P操作;在完成自己的操作后,需要对后继的所有活动进行V操作;3.做题时,不好判断信号量与活动的线是如何关联的,此时需要耐心的结合题意和填空的选项进行判断。
  • 2023-07-28[ABC296E] Transition Game
    题意:给定\(n\)个数,\(a_i\)为\(i\)的后继,有\(n\)轮游戏中,若第\(i\)轮游戏,对于\(1~n\)中任意一个后继次数\(j\),都能选择一个数\(x\)使得\(x\)后继\(j\)次之后都为\(i\),则称之赢一局,问赢的局数。首先可以肯定一个数的后继是唯一确定的,我们可以从任意\(1~n\)中的连向它的后继。考虑
  • 2023-07-18poj 2311 Cutting Game (sg函数)
    小记:这题是对sg函数的初步理解。对于sg函数只要g[x]==0,则此时为必败态。x作为后继,我们就要对所有的后继进行标记,然后mex之。因为每次只能切一刀,所以切完之后,会有两块方格,而对每一块方格进行游戏又会有一个sg函数值,所以根据sg函数的性质,它这一刀所代表的后继,即为这两块方格的sg函
  • 2023-06-27浅谈类 k 短路问题
    u群题题意:\(n\)个数,对于所有大小在\([L,R]\)内的子集求和并排序,求前\(k\)小子集的信息。排序,记数组为\(a_{1,\cdots,n}\)。先考虑\(L=R\)的情况。最小的子集一定是\(a_{1,\cdots,L}\),第二小则是将\(a_L\)改为\(a_{L+1}\),推广到更一般的情况——我们以\([1,L]\)
  • 2023-06-05每日记录(2.3双向链表)
    双向链表的基本概念双链表顾名思义,就是链表由单向的链变成了双向链。使用这种数据结构,我们可以不再拘束于单链表的单向创建于遍历等操作,大大减少了在使用中存在的问题。每一个节点都有两个指针分别指向该节点的前驱和后继。定义:structDuLNode{EtypedeflemTypedata;