![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 75
data structure
PushyTao
这个作者很懒,什么都没留下…
展开
-
[leetcode] 827. 最大人工岛 | 二维并查集
二维并查集,贡献统计原创 2022-09-14 17:00:13 · 228 阅读 · 0 评论 -
[基础数据结构] 判断是否为完全二叉搜索树
对二叉搜索树的定义是:一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n1≤i≤n1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。给出二叉搜索树的层次遍历,并判断是否为完全二叉搜索树可以参考PTA链接将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。输入格式:输入第一行给出一个不超过20的正整数原创 2022-04-22 09:33:48 · 542 阅读 · 0 评论 -
[Nowcoder] network | Tarjan 边双连通分量 | 缩点 | LCA倍增优化 | 并查集
题目链接链接:https://ac.nowcoder.com/acm/contest/1060/B?&headNav=acm来源:牛客网题目描述A network administrator manages a large network. The network consists of N computers and M links between pairs of computers. Any pair of computers are connected directly or ind原创 2021-10-21 00:47:16 · 204 阅读 · 0 评论 -
[Atcoder ABC222] F - Expensive Expense | 妙用树的直径 | Dijkstra
Time Limit: 4 sec / Memory Limit: 1024 MBScore : 500 pointsProblem StatementThe Kingdom of AtCoder is composed of NNN towns and N−1N−1N−1 roads.The towns are labeled as Town 1, Town 2, …, Town N. Similarly, the roads are labeled as Road 1, Road 2, …, R原创 2021-10-10 23:28:07 · 308 阅读 · 0 评论 -
[计蒜客] ACM-ICPC 2018 南京赛区网络预赛 | 部分题解 | 线段树 + 线性筛 + 最短路
该场比赛链接本文目录E. AC Challenge题目描述输入样例输入样例输出提示题意:A. An Olympian Math ProblemG. Lpl and Energy-saving Lamps题目描述输入输出样例输入样例输出提示J. Nanjing Sum题目描述输入输出样例输入提示L. Magical Girl Haze题目描述输入输出样例输入样例输出题意:E. AC Challenge题目描述Dlsj is competing in a contest with n (0 < n原创 2021-10-06 19:32:49 · 605 阅读 · 2 评论 -
[USACO | UPC] Liars and Truth Tellers | 拓展域并查集
网址链接题目描述After spending so much time around his cows, Farmer John has started to understand their language. Moreover, he notices that among his N cows (2≤N≤10002 \leq N \leq 10002≤N≤1000), some always tell the truth while others always lie.FJ carefully原创 2021-10-04 20:43:00 · 192 阅读 · 0 评论 -
[Luogu] P1438 无聊的数列 | 线段树简单题
题目背景无聊的 YYB 总喜欢搞出一些正常人无法搞出的东西。有一天,无聊的 YYB 想出了一道无聊的题:无聊的数列。。。(K峰:这题不是傻X题吗)题目描述维护一个数列 aia_iai ,支持两种操作:1 l r K D:给出一个长度等于 r−l+1r-l+1r−l+1 的等差数列,首项为 KKK,公差为 DDD,并将它对应加到 [l,r][l,r][l,r] 范围中的每一个数上。即:令 al=al+K,al+1=al+1+K+D…ar=ar+K+(r−l)×Da_l=a_l+K,a_{l+1}=a原创 2021-09-23 14:02:12 · 180 阅读 · 0 评论 -
[Nowcoder] Browser Games-2021牛客多校10-A | Hash /压缩Trie
DescriptionIn the upcoming nnn days, nnn browser games will be released on a new website. According to the plan, the administrator will release a new game per day. Users have to open the corresponding URL (Uniform Resource Locator) and get feedback from t原创 2021-08-29 21:24:42 · 279 阅读 · 0 评论 -
[LDUoj 倍增] 题解
星星之火,可以燎原细节的地方慢慢补充,欢迎提出问题,私聊/留言均可A. 跳跳棋较难B. 聚会板子题C. 祖孙询问板子题D. Dis板子题E. 次小生成树(严格次小生成树)难F. 异象石难度适中G. 暗的连锁难度适中H. 点的距离板子题l. 晨跑大水题J. 货物运输较简单K. 数三角形组合数学简单题细节的地方慢慢补充,欢迎提出问题,私聊/留言均可A. 跳跳棋较难struct node{ int a, b, c; friend bool operator != (node a, no原创 2021-08-25 01:41:12 · 547 阅读 · 1 评论 -
[Codeforces 455D]Serega and Fun-分块|细节
in176 6 2 7 4 2 571 3 62 2 4 22 2 4 72 2 2 51 2 61 1 42 1 7 3out12100in288 4 2 2 7 7 8 881 8 82 8 1 71 8 11 7 32 8 8 31 1 41 2 71 4 5out220给定一个长度为n的序列a[],每个元素1 <= a[i] <= n, 1 <= n <= 1e5有两种操作:1: 将区间[l,r.原创 2021-08-17 16:27:29 · 274 阅读 · 0 评论 -
[NC] 仓鼠与珂朵莉-分块
给定一个长度为n的序列,m个询问每次给出一个区间,查找区间内x*cnt[x] 的最大值由于题目的限制,下一次询问的区间会受到上一次查询结果的影响,所以必须要进行强制在线处理首先将数列分成ceil(n/blk+1) 块,对于询问中b[l] + 1 -> b[r] - 1这一块中的答案我们可以通过预处理得到,这里的写法类似数列分块入门中的第九题查询区间众数然后需要做的就是暴力计算左右两边的小块的贡献在这个数据范围下,先进行离散化处理比较好,对于查询的结果可能比较大,所以数据类型上一定要开lon.原创 2021-08-16 14:47:49 · 125 阅读 · 0 评论 -
loj数列分块入门
数列分块入门入门 1-区间修改-单点查询入门 2-区间加法-区间查询入门 3-区间加法-单点查询入门 4-区间加法-区间查询入门 5-区间开方-区间查询入门 6-单点插入-单点查询入门 7入门 8入门 9入门 1-区间修改-单点查询ll n,a[maxn],lazy[maxn];int main() { n = read; for(int i=1; i<=n; i++) a[i] = read; int blk = sqrt(n); for(int ii=1; ii<=n; ii原创 2021-08-14 20:18:37 · 1086 阅读 · 1 评论 -
Codeforces 220B-Little Elephant and Array-扫描线 & 树状数组
首先放上学长博客链接感谢宇巨抛过来的题,本人在抛题现场题意:给出一个长度为n的数组,有m个询问,每次询问给出一个区间,问这个区间内有多少个数x恰好出现x次考虑将询问离线,对每一个询问的右端点,将其左端点以及询问的id进行保存,维护其左端点,用结果 segVal(l,r) 表示当前这一段[l,r]之间的合法方案的个数然后观察序列[2,2,2,2]假设我们用sum[]来记录维护的左端点的贡献,用树状数组来进行操作开始时sum[1] -> sum[4] 全为0rs原创 2021-08-11 13:20:56 · 229 阅读 · 1 评论 -
2021杭电多校5-Arrary-hdu7020
ArrayTime Limit: 15000/8000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 965 Accepted Submission(s): 312Problem DescriptionGiven an integer array a[1…n].Count how many subsegment [L,R] satisfying R−L+1≥1 and t原创 2021-08-07 13:15:21 · 352 阅读 · 0 评论 -
Boring Segments-CF教育场112.尺取+线段树
样例输入:5 121 5 53 4 104 10 611 12 510 12 3样例输出3样例输入:1 101 10 23样例输出0#define mid ((l + r) >> 1)int t[maxn], tg[maxn];struct seg { int l, r, w; bool friend operator <(seg a, seg b){ return a.w < b.w; }} seg[maxn];int n.原创 2021-08-03 12:53:22 · 146 阅读 · 0 评论 -
2021-杭电-4-持久更新记录
A . CalculusSamplesInput21sinx+0cosx+3x+6/sinx0OutputNOYES因为给出的级数都是发散的,所以说只需要判断系数是不是都是0就好了只有所有都是0的时候才是可以的int main() { string s; int _ = read; while(_ --){ cin >> s; int len = s.size(),flag = 0; for(int i=0;i<len;i++) if(isdi原创 2021-07-31 12:21:50 · 122 阅读 · 2 评论 -
Check List线段树维护偏序三元组
下面这个题是二维偏序问题所谓偏序问题,是指多约束条件的元素统计等问题如下:题目链接Check List题目描述When test driving a vehicle, you are asked to make a checkmark on a tablet. Upon inspection, you have noticed many fingerprints on the screen. Aside from the rush of disgust, you notice that the原创 2021-07-21 23:40:33 · 174 阅读 · 0 评论 -
Hang Gliding线段树
参考文章:链接题目链接:链接题目描述The 2020 hang gliding world championships are coming to Florida next spring! (You may think it is odd to hold in Florida a sport that requires mountains, but it turns out that hang gliders can be towed to altitude by other aircraft.)原创 2021-07-20 18:56:15 · 136 阅读 · 1 评论 -
2021年暑假康复性训练(Codeforces Round #731 (Div. 3))全题解
2021暑假康复性训练Codeforces Round #731 (Div. 3)A Shortest Path with ObstacleB. Alphabetical StringsC. Pair ProgrammingD. Co-growing SequenceE. Air ConditionersF. Array Stabilization (GCD version)G. How Many Paths?Codeforces Round #731 (Div. 3)A Shortest Path w原创 2021-07-14 14:51:18 · 312 阅读 · 1 评论 -
ICPC Latin American Regional 2017-Imperial roads(LCA)
DescriptionThe roads of Cubiconia are in a dire state, after years of neglect and lack of maintenance. Each roadconnects two different cities A and B and can be traveled in both ways (from A to B or from B to A). There is at most one road between each pa原创 2021-05-16 18:49:47 · 241 阅读 · 2 评论 -
Harry Potter and The Vector Spell-gym101669D(矩阵的秩-并查集)
Sample Input3 3 2 1 3 2 1 2 2 2 3 Sample Output2Sample Input 24 33 1 2 3 1 11 21 3Sample Output 23题意:给出一个0 1矩阵,这个矩阵中每一列有且只有两个1,求这个矩阵的秩输入一行中1的数量x,然后后面x个数代表1出现的列位置求出这个矩阵的秩方法:思维并查集将每一列的两个1所在的行编号连一条边,然后求一下最小生成树就好其实就是我们维护一个并查集,在这个并查集里面.原创 2021-05-08 10:56:13 · 193 阅读 · 0 评论 -
重链剖分求LCA
洛谷P3379题目描述输入格式输出格式输入输出题目链接倍增做法求LCA 在这篇博客中有提到题目描述如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。输入格式第一行包含三个正整数 N,M,SN,M,S,分别表示树的结点个数、询问的个数和树根结点的序号。接下来 N-1N−1 行每行包含两个正整数 x, yx,y,表示 xx 结点和 yy 结点之间有一条直接连接的边(数据保证可以构成树)。接下来 MM 行每行包含两个正整数 a, ba,b,表示询问 aa 结点和 bb 结点的最原创 2021-05-01 11:57:02 · 374 阅读 · 0 评论 -
[数据结构总结] 扩展域并查集
目录扩展域并查集主要用途关押罪犯DescriptionInputOutputSamplesInput 复制OutputHint扩展域并查集主要用途在题目中明显给出若干个人之间的关系,比如敌对关系或者是派别关系等,然后要求出可以使其互不干扰会有多少对关系,或者是此时的一个权值等等,都可以用到扩展域并查集。在下面的两道例题中,也都是有这种关系。比如在第一个例题关押罪犯中,就有明显的敌对关系,对两个人来讲,他们如果是放到一起,就会发生摩擦,要避免摩擦就要将这两个人放在不同的监狱中。从这个知识点的角度来分析原创 2021-05-01 10:32:57 · 788 阅读 · 0 评论 -
All in the Family_upc_模拟 or lca + 并查集
The scientists working at the Family Genetics Institute are tracing the spread of a hereditary disease through family trees. They have started by listing the family members that have the disease, and the parent who passed the disease on to each child (we .原创 2021-03-20 21:43:40 · 277 阅读 · 1 评论 -
树上倍增求LCA
洛谷P3379题目描述输入格式输出格式输入输出题目链接题目描述如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。输入格式第一行包含三个正整数 N,M,SN,M,S,分别表示树的结点个数、询问的个数和树根结点的序号。接下来 N-1N−1 行每行包含两个正整数 x, yx,y,表示 xx 结点和 yy 结点之间有一条直接连接的边(数据保证可以构成树)。接下来 MM 行每行包含两个正整数 a, ba,b,表示询问 aa 结点和 bb 结点的最近公共祖先。输出格式输出包含 M原创 2021-03-07 22:11:25 · 524 阅读 · 0 评论 -
求逆序对
给出若干个数,每次可以交换相邻的两个,如果要将这些数变成非递减的数,需要操作多少次?很容易就可以想到暴力的解决方式如果是数据范围比较小的时候,可以直接进行暴力求解如果是数据范围比较大的时候,这时候需要用树状数组求解一下附上暴力的代码 int n; cin >> n; for(int i=1;i<=n;i++) a[i] = read; int cnt = 0; for(int i=1;i<=n;i++){ for(原创 2020-11-30 13:33:14 · 110 阅读 · 0 评论 -
线段树水题
Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 146855 Accepted Submission(s): 51441Problem Description很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,..原创 2020-11-19 18:47:56 · 119 阅读 · 0 评论 -
Dropping Balls—满二叉树
题意:给出一棵满二叉树,编号从左向右进行编号,然后原创 2020-11-15 17:07:04 · 240 阅读 · 0 评论 -
并查集计数——总结与例题
比较基础的知识可以看这位大佬的博客 or 这篇博客并查集主要有初始化、union、计数等const int N = 1008;ll fa[N];///存储父亲节点ll sum[N];///计数///寻找父亲节点ll _Get_fa(int x){ if(x == fa[x]) return x; else return fa[x] = _Get_fa(fa[x]);}///初始化:void _Init(){ for(int i=0;i<=N;i++){原创 2020-11-11 14:13:21 · 252 阅读 · 0 评论 -
Elven Postman 二叉树遍历问题
DescriptionElves are very peculiar creatures. As we all know, they can live for a very long time and their magical prowess are not something to be taken lightly. Also, they live on trees. However, there is something about them you may not know. Although d原创 2020-09-22 21:55:54 · 166 阅读 · 0 评论 -
The Famous ICPC Team Again
时间限制: 5 Sec 内存限制: 128 MB题目描述When Mr. B, Mr. G and Mr. M were preparing for the 2012 ACM-ICPC World Final Contest, Mr. B had collected a large set of contest problems for their daily training. When they decided to take training, Mr. B would choose one of原创 2020-09-08 19:31:15 · 151 阅读 · 0 评论 -
序列--(树状数组维护等差数列模板)
题目描述eobiyye给了你一个长度为n的序列ai,序列中每个元素的初始值为0。接下来她会对这个序列进行m次操作,每次操作有4个参数l,r,s,e,表示将区间[l,r]加上一个首项为s,末项为e的等差数列。若一次操作中l=1,r=5,s=2,e=10,则对序列中第1~5个数分别加上2,4,6,8,10。现在Geobiyye要求你求出m次操作后序列中的每个数的值。输入第一行2个整数n,m,表示序列长度和操作数。接下来m行,每行4个整数l,r,s,e,含义见题目描述。数据保证等差数列中的每一项都原创 2020-08-16 17:16:55 · 490 阅读 · 0 评论 -
车厢调度——栈
题目描述有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合。假设从A方向驶来的火车有n节(n≤1000),分别按照顺序编号为1,2,3,…,n。假定在进入车站前,每节车厢之间都不是连着的,并且它们可以自行移动到B处的铁轨上。另外假定车站C可以停放任意多节车厢。但是一旦进入车站C,它就不能再回到A方向的铁轨上了,并且一旦当它进入B方向的铁轨,它就不能再回到车站C...原创 2020-03-26 23:24:42 · 973 阅读 · 0 评论 -
字符串匹配问题——带有优先级的括号匹配问题
题目描述字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互相包 含的形式,从内到外必须是<>,(),[],{},例如。输入: [()] 输出:YES,而输入([]),([)]都应该 输出 NO。输入第一行为一个整数 n,表示以下有多少个由括好组成的字符串。接下来的 n 行, 每行都是一个由括号组成的长度不超过 255 的字符串。...原创 2020-03-26 23:22:37 · 3576 阅读 · 0 评论 -
括弧匹配检验——UPC
题目描述假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如( ) 或[([ ][ ])]等为正确的匹配,[( ])或( 或 ( ( ) ) )均为错误的匹配。现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配?输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出 “OK” ,不匹配就输出“Wrong”。输入一个字符串:[([][])],输出:OK...原创 2020-03-26 23:14:56 · 269 阅读 · 0 评论 -
表达式括号匹配——UPC
题目描述假设一个表达式有英文字母(小写)、运算符(+,-,*,/ )和左右小(圆)括号构成, 以@作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回YES;否则返回NO。输入包括一行数据,即表达式。输出包括一行,即YES或NO。样例输入 Copy【样例1】2*(x+y)/(1-x)@【样例2】(25+x)*(a*(a+b+b)@样例输出 C...原创 2020-03-26 23:12:56 · 571 阅读 · 0 评论 -
Leopard学霸——贪心+优先队列
题目描述马上假期就要到了,THU的神犇Leopard假期里都不忘学霸,现在有好多门功课,每门功课都耗费他1单位时间来学习。 他的假期从0时刻开始,有1000000000个单位时间(囧rz)。在任意时刻,他都可以任意一门功课(编号1~n)来学习。 因为他在每个单位时间只能学习一门功课,而每门功课又都有一个截止日期,所以他很难完成所有n门功课。 对于第i门功课,有一个截止时间Di,若他能学完这门功课...原创 2020-03-15 13:34:00 · 253 阅读 · 0 评论 -
UPC朋友——并查集
题目描述有一个城镇,住着n个市民。已知一些人互相为朋友。引用一个名人的话说,朋友的朋友也是朋友。意思是说如果A和B是朋友,C和B是朋友,则A和C是朋友.你的任务是数出最大朋友组的人数。输入输入第一行由N,M组成,N是市民的个数(1<=n<=30000),m是朋友对的个数(0<=m<=500000)。下面的m行每一行由两个数A和B组成(1<=A,B<=N,A...原创 2020-03-14 17:51:58 · 353 阅读 · 0 评论 -
排队——树状数组
题目描述每天,农夫John的N(1 <= N <= 50,000)头牛总是按同一序列排队.有一天,John决定让一些牛们玩一场飞盘比赛.他准备找一群在对列中位置连续的牛来进行比赛.但是为了避免水平悬殊,牛的身高不应该相差太大.John准备了Q (1 <= Q <= 180,000)个可能的牛的选择和所有牛的身高 (1 <= 身高 <= 1,000,000)....原创 2020-03-11 17:58:18 · 230 阅读 · 0 评论