![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 86
柴春阳
QZEZ
展开
-
浅谈平衡树
平衡树是一种支持插入一个整数 x。删除一个整数x(若有多个相同的数,只删除一个)。查询整数 x 的排名(排名定义为比当前数小的数的个数 +1)。查询排名为 x 的数(如果不存在,则认为是排名小于 x 的最大数)。求 x 的前驱(前驱定义为小于 x,且最大的数)。求 x 的后继(后继定义为大于 x,且最小的数)。等操作,并且支持在线的数据结构注意:这并不是平衡树,只是可以支持大部分平衡树的操作的一种结构实质:vector + lower_boundvector 是一种支持任意位置插入、删除和查询的一个结构。定原创 2022-07-12 14:23:17 · 390 阅读 · 0 评论 -
平衡树学习笔记
平衡树1. 伪平衡树(并不是平衡树)2. Treap3. 替罪羊树4. AVL树5. 伸展树6. 红黑树7. 加权平衡树8. 2-3树9. AA树10. 节点大小平衡树原创 2022-03-06 16:14:43 · 6947 阅读 · 0 评论 -
树形DP-树的直径与重心
树的直径与重心直径定义树形DP解树的直径注意重心定义树形DP解树的重心直径定义给定一颗树T=(V,E)T=\left(V,E\right)T=(V,E) 直径为maxlen(u,v)(u,v∈V)maxlen(u,v)(u,v\in V)maxlen(u,v)(u,v∈V)树的直径普遍有两种求法,一个是两边bfs/dfsbfs/dfsbfs/dfs另一个就是树形DP树形DP解树的直径这颗树的直径很明显,就是(8,14)(8,14)(8,14)而如何用代码实现呢?首先令:fi,1f_{i,原创 2021-06-03 20:08:54 · 174 阅读 · 0 评论 -
CF1525
CF1525A题面翻译解析代码题面You have an initially empty cauldron, and you want to brew a potion in it. The potion consists of two ingredients: magic essence and water. The potion you want to brew should contain exactly k %k\ \%k %magic essence and (100−k)原创 2021-05-18 19:53:33 · 182 阅读 · 0 评论 -
[DP]迷恋
[DP]迷恋题面题目描述输入输出样例提示解析规律1:规律2推论1DP代码题面题目描述- 这不是正义的义务,而是作为正义的盟友!- 不是盟友,而是正义本身,Onii−chanOnii-chanOnii−chan!这一次,火姐妹 - 凯伦和TsukihiTsukihiTsukihi - 正在前往他们从未到达的地方 - 水包围的岛屿!有三种群岛,分别有三种颜色红色,蓝色和紫色的怪物。每种颜色的岛屿分别有aaa,bbb,ccc个。桥梁在一些(可能全部或者部分)岛屿之间建成。桥梁双向连接两个不同的岛屿并原创 2021-04-22 20:16:36 · 98 阅读 · 0 评论 -
[DP]Apple Catching G
[DP]Apple Catching G题面题目描述输入格式输出格式样例解析题面题目描述很少有人知道奶牛爱吃苹果。农夫约翰的农场上有两棵苹果树(编号为111和222), 每一棵树上都长满了苹果。奶牛贝茜无法摘下树上的苹果,所以她只能等待苹果 从树上落下。但是,由于苹果掉到地上会摔烂,贝茜必须在半空中接住苹果(没有人爱吃摔烂的苹果)。贝茜吃东西很快,她接到苹果后仅用几秒钟就能吃完。每一分钟,两棵苹果树其中的一棵会掉落一个苹果。贝茜已经过了足够的训练, 只要站在树下就一定能接住这棵树上掉落的苹果。同时,贝原创 2021-04-20 19:28:31 · 137 阅读 · 0 评论 -
[DP]巨大的牛棚 Big Barn
[DP]巨大的牛棚 Big Barn题面题目描述输入格式输出格式样例解析代码题面题目描述农夫约翰想要在他的正方形农场上建造一座正方形大牛棚。他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方。我们假定,他的农场划分成 N×NN \times NN×N 的方格。输入数据中包括有树的方格的列表。你的任务是计算并输出,在他的农场中,不需要砍树却能够修建的最大正方形牛棚。牛棚的边必须和水平轴或者垂直轴平行。EXAMPLE考虑下面的方格,它表示农夫约翰的农场,‘.'表示没有树的方格,‘#原创 2021-04-15 20:47:38 · 208 阅读 · 0 评论 -
[DP]最大子段和
[DP]最大子段和题面题目描述输入格式输出格式样例样例解释数据规模解析代码题面题目描述给出一个长度为 nnn 的序列 aaa,选出其中连续且非空的一段使得这段和最大。输入格式第一行是一个整数,表示序列的长度 nnn。第二行有 nnn 个整数,第 iii 个整数表示序列的第 iii 个数字 aia_iai。输出格式输出一行一个整数表示答案。样例输入72 -4 3 -1 2 -4 3输出4样例解释选取 [3,5][3, 5][3,5] 子段 {3,−1,2}\{3, -1,原创 2021-04-15 20:28:12 · 140 阅读 · 0 评论 -
[DP]没有上司的舞会
某大学有 nnn 个职员,编号为 1…n1\ldots n1…n。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数rir_iri,但是呢,如果某个职员的直接上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。输入的第一行是一个整数 nnn。第222 到第 (n+1)(n + 1)(n+1) 行,每行一个整数,第 (i+原创 2021-04-13 20:00:27 · 68 阅读 · 0 评论 -
[DP]Cow Frisbee Team S
[DP]Cow Frisbee Team S题面题目描述输入格式输出格式样例数据范围解析代码题面题目描述老唐最近迷上了飞盘,约翰想和他一起玩,于是打算从他家的 NN 头奶牛中选出一支队伍。每只奶牛的能力为整数,第 iii 头奶牛的能力为RiR_iRi 。飞盘队的队员数量不能少于 111、大于NNN。一支队伍的总能力就是所有队员能力的总和。约翰比较迷信,他的幸运数字是 FFF ,所以他要求队伍的总能力必须是 FFF 的倍数。请帮他算一下,符合这个要求的队伍组合有多少?由于这个数字很大,只要输出答案原创 2021-04-13 19:28:23 · 300 阅读 · 0 评论 -
[DP]Subset Sums 集合
[DP]Subset Sums 集合题面题目描述输入输出样例数据范围解析题面题目描述对于从 1∼n1\sim n1∼n的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的。举个例子,如果 n=3n=3n=3,对于 {1,2,3}\{1,2,3\}{1,2,3} 能划分成两个子集合,每个子集合的所有数字和是相等的:{3}\{3\}{3} 和 {1,2}\{1,2\}{1,2}是唯一一种分法(交换集合位置被认为是同一种划分方案,因此不会增加划分方案总数)如果 n=7n=7n=7,有四种方原创 2021-04-11 16:04:56 · 275 阅读 · 0 评论 -
[背包DP]Space Elevator 太空电梯
[背包DP]Space Elevator 太空电梯题面题目描述输入输出样例解析代码题面题目描述奶牛们要去太空了!它们打算用方块建造一座太空电梯。现在它们有 NN 种方块,第 ii 种方块有一个特定的高度 hih_ihi,一定的数量 cic_ici 。为了防止宇宙射线的破坏方块,第 iii 种方块的任何部分不能超过高度 aia_iai 。请用这些方块堆出最高的太空电梯。输入第一行,一个整数 NNN;第二行到 N+1N+1N+1 行,第 i+1i+1i+1行三个整数 hi,ai,cih_i,原创 2021-04-11 15:05:41 · 287 阅读 · 0 评论 -
[思维]CF1423K
[思维]CF1423K Lonely Numbers题目翻译解析题目翻译题目大意我们规定对于两个不同的数字 a,ba,ba,b ,如果gcd(a,b),agcd(a,b),bgcd(a,b)\gcd(a,b),\frac{a}{\gcd(a,b)},\frac{b}{\gcd(a,b)}gcd(a,b),gcd(a,b)a,gcd(a,b)b可以构成一个三角形,那么 a,ba,ba,b 便是一组好朋友.我们进一步规定,如果在一个集合中中,有一数字KKK和这个集合中任意一个数字都不是朋友,那原创 2021-04-11 12:07:52 · 126 阅读 · 0 评论 -
[Treap]普通平衡树
[Treap]普通平衡树题面题目描述输入格式输出格式样例数据输入输出数据范围算法解析概念Treap二叉搜索树/二叉排序树应用操作1操作2操作3、4操作5、6主程序完整代码题面题目描述您需要写一种数据结构,来维护一些数,其中需要提供以下操作:插入 x\text{x}x数删除 x\text{x}x数(若有多个相同的数,因只删除一个)查询 x\text{x}x数的排名(排名定义为比当前数小的数的个数 +1\text{+1}+1 )查询排名为 x\text{x}x的数求 x\text{x}x的前驱原创 2021-02-26 12:34:47 · 134 阅读 · 0 评论 -
[Treap]普通平衡树(番外加强版)
[Treap]普通平衡树题面题目描述输入格式输出格式样例数据输入输出数据范围算法解析概念Treap二叉搜索树/二叉排序树应用题面题目描述您需要写一种数据结构,来维护一些数,其中需要提供以下操作:插入 x\text{x}x数删除 x\text{x}x数(若有多个相同的数,因只删除一个)查询 x\text{x}x数的排名(排名定义为比当前数小的数的个数 +1\text{+1}+1 )查询排名为 x\text{x}x的数求 x\text{x}x的前驱(前驱定义为小于 x\text{x}x,且最大原创 2021-02-26 09:24:50 · 120 阅读 · 0 评论 -
[map]answer
[map]answer题面题目描述输入数据范围算法解析map代码题面题目描述小 HHH 与小 YYY 刚刚参加完 UOIPUOIPUOIP 外卡组的初赛,就迫不及待的跑出考场对答案。“吔,我的答案和你都不一样!”,小 YYY 说道,”我们去找神犇们问答案吧”。外卡组试卷中共有 mmm 道判断题,小 HHH 与小 YYY 一共从其他 nnn 个神犇那问了答案。之后又从小 GGG 那里得知,这 nnn 个神犇中有 ppp 个考了满分,qqq 个考了零分,其他神犇不为满分或零分。这可让小 YYY 与原创 2021-01-12 18:54:13 · 116 阅读 · 0 评论 -
[数位DP]ticket
[数位DP]ticket题面题目描述输入样例提示题面题目描述蒟蒻hzwer NOIP2014惨跪,他依稀记得他的准考证号是37,现在hzwer又将要面临一场比赛,他希望准考证号不出现37(连续),同时他又十分讨厌4,所以也不希望4出现在准考证号中。。。现在他想知道在A和B之间有多少合法的准考证号。输入包含两个整数,A B输出一个整数。样例输入1 10输出9输入25 50输出14提示【数据规模和约定】20%的数据,满足 1 <= A <= B <= 10原创 2020-12-15 19:49:12 · 184 阅读 · 0 评论 -
[set]考前复习-操作系统
[set]考前复习-操作系统题面题目描述输入输出setset介绍性质使用模拟思路题面题目描述写一个程序来模拟操作系统的进程调度。假设该系统只有一个CPUCPUCPU,每一个进程的到达时间,执行时间和运行优先级都是已知的。其中运行优先级用自然数表示,数字越大,则优先级越高。如果一个进程到达的时候CPUCPUCPU是空闲的,则它会一直占用CPUCPUCPU直到该进程结束。除非在这个过程中,有一个比它优先级高的进程要运行。在这种情况下,这个新的(优先级更高的)进程会占用CPUCPUCPU,而老的只有等待。如原创 2020-11-05 20:21:06 · 717 阅读 · 0 评论 -
T136513 横看二叉树
(来自本人luogu搬迁)T136513 横看二叉树题目来看着张图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lXe90UzL-1604578431155)(https://s1.ax1x.com/2020/06/14/txjRUS.png)]根左右1232空53空44空空5空空很显然来次先序遍历,再不断覆盖就好了#include <bits/stdc++.h>str原创 2020-11-05 20:14:52 · 70 阅读 · 0 评论 -
[DP]音量调节
[DP]音量调节题面题目描述输入输出样例解析暴力DPDP状态设计DP转移方程式代码题面题目描述一个吉他手准备参加一场演出。他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都需要改变一次音量。在演出开始之前,他已经做好一个列表,里面写着每首歌开始之前他想要改变的音量是多少。每一次改变音量,他可以选择调高也可以调低。音量用一个整数描述。输入文件中整数beginLevelbeginLevelbeginLevel,代表吉他刚开始的音量,整数maxLevelmaxLevelmaxLevel,代表吉原创 2020-11-02 19:01:52 · 534 阅读 · 0 评论 -
[多项式]ACM-T6-n阶方程
[多项式]ACM-T6-n阶方程题面题目描述输入格式输出格式解题思路秦九韶公式题面题目描述现有一个一元高阶方程:a0+a1∗x+a2∗x2+...+an∗xn=0a_0+a_1*x+a_2*x^2+...+a_n*x^n=0a0+a1∗x+a2∗x2+...+an∗xn=0现给出数字mmm,求出此方程在[1,m][1,m][1,m]以内的整数解。输入格式第一行包含222个整数nnn、mmm,每两个整数之间用一个空格隔开。接下来的n+1n+1n+1行每行包含一个整数,依次为a0a_0a原创 2020-11-02 18:36:33 · 177 阅读 · 0 评论 -
[二分]第K大的数
[二分]第K大的数题面题面描述输入输出样例解析暴力优化优化II代码题面题面描述数组AAA和数组BBB,里面都有nnn个整数。数组CCC共有n2n^2n2个整数,分别是:A0×B0,A0×B1......A0×Bn−1A_{0} \times B_{0},A_{0} \times B_{1} ...... A_{0} \times B_{n-1}A0×B0,A0×B1......A0×Bn−1A1×B0,A1×B1......A1×Bn−1A_{1} \times B_{0},A_{1原创 2020-11-01 16:37:34 · 491 阅读 · 0 评论 -
[树形dp]CCC-Unfriend
CCC-Unfriend题面题面描述翻译输入翻译输出翻译样例提示Explanation for Sample 1Explanation for Sample 2翻译样例1样例2算法分析树形dp完整代码题面题面描述Mark invited some people to join his social network. Some of them invited new people, who invited new people, and so on. Now there are NNN people i原创 2020-10-27 20:37:27 · 155 阅读 · 0 评论 -
[贪心]力扣122
力扣122. 买卖股票的最佳时机 IIclass Solution {public: int a[100000]; int maxProfit(vector<int>& prices) { for(int i=0;i<prices.size();i++){a[i]=prices[i];} a[prices.size()]=-1; int ans=0,Min=100000; for(int i=0;i原创 2020-11-05 19:47:47 · 111 阅读 · 0 评论 -
[贪心]力扣-买卖股票专题
力扣121. 买卖股票的最佳时机class Solution {public: int maxProfit(vector<int>& prices) { int Max=0,Min=100000; for(int i=0;i<prices.size();i++) { if(prices[i]<Min){ Min=prices[i]; }原创 2020-10-20 20:34:49 · 184 阅读 · 0 评论 -
24点(升级版)
本24点代码可以实现以下操作:查找4个数经过+++,−-−,∗*∗, \ ,运算是否可得到NNN;支持仅查找是否存在和查找存在的算式支持多组数据,每组数据结束后请按回车,当N=0N=0N=0时结束输入第一行一个二进制数g,0表示不输出算式,1相反;(输入后过程中不可更改)接下来一行一个数NNN然后下一行4个数,表示这些数参加运算以回车表示下一组数据(回到第2步)#include<bits/stdc++.h>#define forr(i) for(int i=1;i原创 2020-10-07 16:31:55 · 270 阅读 · 0 评论 -
[模拟]ACM-T4-24点
[模拟]ACM-T4-24点题面题目描述输入格式输出格式模拟思路运算优先级数字全排列运算符排列全枚举完整代码(判断能否组成24)拓展延伸代码(输出算式)题面题目描述您作为游戏者将得到444个1−131-131−13(在扑克牌里用AAA代替111,JJJ代替111111,QQQ代替121212,KKK代替131313)之间的自然数作为操作数,而您的任务是对这444个操作数进行适当的算术运算,判断运算结果是否等于242424。能输出111,不能输出000。您可以使用的运算只有:+++,−-−,∗*∗,//原创 2020-10-07 15:26:54 · 332 阅读 · 0 评论 -
[DP]CF455A Boredom
[DP]CF455A Boredom题面题目描述输入输出思路分析数据处理DPDPDP式推导完整代码题面题目描述AlexAlexAlex不喜欢无聊。所以每当他感到无聊他就会想出一些游戏。一个冬天的晚上他想出了一个游戏并且决定开始玩这个游戏。给定一个有nnn个元素的序列aaa。你可以做若干次操作。在一次操作中我们可以取出一个数(((假设他为x)x)x)并删除它,同时删除所有的序列中值为x+1x+1x+1和x−1x-1x−1的数。这一步操作会给玩家加上x分。输入第一行一个整数n(1≤n≤105)n(原创 2020-10-06 10:46:49 · 202 阅读 · 0 评论 -
[异或前缀]梦境
[异或前缀]梦境题面题目描述输入输出思路分析题面题目描述相信你也和 OierOierOier-KryKryKry 一样,码了几行代码,就轻松搞定其等价电阻的值。KryKryKry 忽然间意识到不能总是不干正经事,联赛马上就来了, 该整理下 UUU 盘,好好复习总结下,于是插上 UUU 盘,开始翻阅以前学习的资料。由于前面的更换教室地板,再加上刚才解决电路连接问题, KryKryKry 有点累了,不知道哪里来的困意,在学习压力这么大的情况下,居然不知不觉的睡着了KryKryKry 在梦里回到了初中原创 2020-10-05 16:25:59 · 190 阅读 · 0 评论 -
[搜索-bitset]Moocast-S
[搜索-bitset]Moocast-S题面题目描述输入输出搜索思路bitsetbitsetbitset使用完整代码题面题目描述Farmer John 有 N 头奶牛,他们想组建一个紧急的“传递信息”系统,以便相互之间传递重要的信息。他们决定使用对讲机来作为装备,而不是通过相互间的哞哞叫,每头牛配有一只对讲机。这些对讲机都有自己的有限传输半径,如果有限传输半径是 PPP 的话,也就是说该对讲机能将信息传送到与之距离不超过 PPP 的对讲机(请注意,奶牛AAA 可能把信息传递给奶牛 BBB,但奶牛 B原创 2020-10-05 13:59:09 · 184 阅读 · 0 评论 -
[字符串]Cities and States-S
[字符串]Cities and States-S题面题目描述输入输出解题思路题面题目描述为了促进奶牛的智力发展, FarmerJohnFarmer JohnFarmerJohn在牛棚的墙上放置了一幅很大的美国地图。在奶牛们花费很多时间研究地图后,他们注意到一个奇特的现象。例如,有这样两个城市:弗林特(Flint)(Flint)(Flint),其州代码为MIMIMI,和迈阿密(Miami)(Miami)(Miami),州代码为 FLFLFL,他们之间存在一个特殊的关系:"弗林特"(Flint)(Fli原创 2020-10-05 13:30:45 · 194 阅读 · 1 评论 -
[链表-贪心]中位数
中位数题面题面描述输入输出算法分析暴力暴力思路核心代码链表链表思路链表+贪心链表+贪心思路核心代码题面题面描述输入一个奇数nnn和长度为nnn的数组aaa,请你求出aaa数组前1,3,5……n1,3,5……n1,3,5……n个数的中位数注:多组数据输入第一行 一个数ppp,表示有ppp组数据下一行,两个数kkk和nnn,表示是第kkk组接下来若干行,每行101010个数,共nnn个数输出第一行输出kkk和中位数的个数(((通常为n/2+1n/2+1n/2+1 )))接下输出中位数,10原创 2020-10-05 12:48:08 · 647 阅读 · 0 评论 -
LCA浅谈
浅谈LCALCALCALCA定义倍增倍增倍增-LCALCALCA 原理化深度统一O(n)O(n)O(n)算法O(lng2n)O(lng_2{n})O(lng2n)算法[倍增]搜索公共祖先O(n)O(n)O(n)算法O(log2n)O(log_2{n})O(log2n)算法[倍增]倍增倍增倍增-LCALCALCA代码实现1.定义:2.建树:3.广搜:4.LCALCALCA(核心):5.主程序:LCALCALCA定义对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是原创 2020-07-19 19:38:55 · 256 阅读 · 0 评论