数据结构
文章平均质量分 76
1
C202207xiaofang
保加利亚希望中学附属光明小学优秀毕业生
展开
-
To_Heart—题解——[UR #19]前进四
感觉这种转换很神仙。没见过。或者是对势能线段树了解不够多?反正很神仙就是了。原创 2023-07-06 23:00:51 · 297 阅读 · 1 评论 -
To_Heart—题解——[HNOI/AHOI2018]转盘
起因是学长来讲数据结构!讲得很好!于是记录一下以后有机会讲给下一代!!1。原创 2023-07-06 22:30:09 · 222 阅读 · 0 评论 -
To_Heart—题解——[Ynoi2021] TEST_68
然后就是先找到整棵树中使得最大的那两个点。发现除了这两个点到1的两条链以外,其他的点的答案就是全局最大。然后你再处理一下这两条链就好了。傻逼玩意儿,思想很简单,但是好久没写过 trie 了,实现有点不会了。以及有的点答案为 0,所以需要用个数组记录到底该用谁表示答案。细节就是,因为子树包括本身,所以说选择从链的上端往下跑。原创 2023-02-21 17:39:14 · 80 阅读 · 0 评论 -
To_Heart—题解——[HEOI2013]ALO
题目链接Link.题解对于每一个数,我们先考虑它可以和哪些数异或。设当前这个数为 iii,如果我们能够找到左边的第二个 lll 使得 ai<ala_i<a_lai<al,那么 iii 就是区间 [l+1,i]\left[ l+1,i \right][l+1,i] 的次大值,同理往右边找到第二个 rrr 使得 ai<ara_i<a_rai<ar ,iii 就是区间 [i,r−1]\left[ i,r-1 \right][i,r−1] 的次大值。这两个区间的交原创 2022-03-01 16:56:08 · 152 阅读 · 0 评论 -
To_Heart—题解—— [BZOJ2244]拦截导弹
题目Link.题解首先我们考虑暴力的dp,设 dpidp_idpi 表示以 iii 结尾的最多的导弹拦截长度,则 dpi=max(dpj+1),hi<hj∧vi<vjdp_i=\max(dp_j+1), h_i<h_j \wedge v_i<v_jdpi=max(dpj+1),hi<hj∧vi<vj,显然复杂度是 O(n2)O(n^2)O(n2) 的。考虑如何优化,发现可以用 CDQ分治。但是CDQ分治有个问题, 在处理 l∼rl \sim rl∼原创 2022-02-12 20:07:53 · 232 阅读 · 0 评论 -
To_Heart—题解——CF762E
题意在一维坐标轴上分布了 nnn 个机器人,第个机器人的坐标是 xix_ixi 。第 iii 个机器人的视野是 rir_iri 。也就是说,第 iii 个机器人能看到 [xi−ri,xi+ri][x_i-r_i,x_i+r_i][xi−ri,xi+ri] 范围内的所有其他机器人。第 iii 个机器人的智商是 fif_ifi 如果有一对机器人可以互相看到,并且它们的智商相差不超过 kkk ,那么它们就可以互相交流。你需要求出来有多少对机器人可以互相交流。题解设 iii , jjj 满原创 2021-09-03 21:27:20 · 83 阅读 · 0 评论 -
To_Heart—题解——CF620E
题目给个链接题解题解这道题目我们首先通过DFN序将树的子树转换为一个区间,则:每次修改整颗子树颜色的操作变换为将一个区间的所有值修改。。每次查询整颗子树颜色种类的操作变为查询一个区间内不同值的个数。然后这个东西就可以很自然的想到线段树。这时我们发现颜色不会超过60,所以可以状态压缩成一个在long long范围内的数,最后查询用Lowbit就好了。代码#include<bits/stdc++.h>using namespace std;#define ll long原创 2021-08-20 20:05:02 · 114 阅读 · 0 评论 -
To_Heart—题解——Codechef Garden Game
fuck原创 2021-07-08 08:43:03 · 96 阅读 · 0 评论 -
To_Heart—总结——字典树
直到今天,我才知道原来字典树也是数据结构字典树(Trie)是一种用于实现字符串快速存储和检索的多叉树结构。Trie的每个节点都拥有若干个字符指针(可理解为若干条单个字符的边),若在插入或检索字符串时扫描到一个字符c,就沿着当前节点的c字符指针,走向该指针指向的节点。不好理解?上图就展示了一棵字典树,其中的每一条与根节点相连的链都是一个字符串,可以发现,我们利用各个字符串之间的相同前缀,而不是每一个字符串都去开一个数组,大大减小了空间复杂度,同时使检索字符更加方便。接下来,我向大家介绍字典树的两种基原创 2021-02-20 20:00:59 · 106 阅读 · 2 评论 -
To_Heart—总结——树状数组
树状数组主要用来解决区间求和问题。接下来,我们以区间求和为引子,详细讲述树状数组的两类操作。问题引入有一个一维数组,长度为n。对这个数组做两种操作:修改,对第i~j之间的某元素增加 v求和,求 i 到 j 的和首先,很容易想到前缀和,但是前缀和不支持修改操作,或者说,前缀和的修改操作的时间复杂度是O(n)。如果一共操作m次,则前缀和的最坏时间复杂度是O(nm),最好时间复杂度是O(m)。但是,即将介绍的树状数组,是一种修改和求和都只需要O(logn)的算法,所以树状数组的最好和最坏时间复杂原创 2021-02-19 15:10:18 · 105 阅读 · 1 评论 -
To_Heart—总结——线段树
概念线段树(Segment Tree)是一种基于分治思想的二叉树结构,用于在区间上进行信息统计。接下来,我们以查找区间最大值为例,给大家讲解线段树。现在我们假设一个数组a,以1开头,长度为10。如果我们要查找a[1]~a[1]的区间最大值,那很好办到,就是a[1]本身。查找a[1]~a[2]的也很简单,直接比较一下a[1]和a[2]谁更大就好了。同理,查找a[3]~a[4]直接比较a[3],a[4]即可。那么如果我们要查找a[1]~a[4]的区间最大值呢?我们可以从a[1]到a[4]一个一个原创 2021-02-18 17:15:26 · 95 阅读 · 4 评论 -
To_Heart—题解——打击犯罪
思路:其实这道题就是用并查集来寻找节点,然后来判断子图是否一样,一样就继续,不一样就退出。代码如下:#include<bits/stdc++.h>using namespace std;int a[1005][1005],pre[1005],toto[1005];int Find(int x){ if(pre[x]!=x){ pre[x]=Find(pre[x]); } return pre[x];}int main(){ int n; scanf("%.原创 2020-08-11 21:35:47 · 367 阅读 · 0 评论 -
To_Heart—题解——老旧的桥
思路首先,我们读题可发现要开long long!!!咳咳,进入正题:因为输入保证开始时每一座小岛都是相连的,那么我们可以倒序处理,把塌桥的过程转换为建桥的过程,用sum数组存放当前不可以连接的岛屿,那么sum[m+1]就是所有点都不可以相连的情况(因为此时所有的边都掉完了);我们可以在进入循环的时候通过并查集确认每座岛的连接情况;进入处理后,我们可以找这座桥的两个小岛的根节点是否相同,如果相同,就说明即使这条边掉了边上的两点也可以相连,和最终结果没关系所以sum[i]=sum[i+1];如果不.原创 2020-08-11 21:26:17 · 322 阅读 · 0 评论 -
To_Heart—题解——VijosP1448 校门外的树
题目链接描述校门外有很多树,有苹果树,香蕉树,有会扔石头的,有可以吃掉补充体力的……如今学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两个操作:K=1,K=1,读入l、r表示在区间[l,r]中种上一种树,每次操作种的树的种类都不同K=2,读入l,r表示询问l~r之间能见到多少种树(l,r>0)格式输入格式第一行n,m表示道路总长为n,共有m个操作接下来m行为m个操作输出格式对于每个k=2输出一个答案样例1样例输入15 41 1 32原创 2020-07-27 20:42:28 · 294 阅读 · 1 评论 -
To_Heart—题解——Hash 键值
鸽子回归今天,带大家看一看一道思维题。。。Hash 键值 (hash)题目描述Marser沉迷hash无法自拔,然而他发现自己记不住hash键值了……Marser使用的hash函数是一个单纯的取模运算,每一个数i被对应到i mod p。他现在有一个数列,他采用这种方法,把每一个数对应到一个键值i mod p。他想知道对于给定的模数p和键值r,所有对应到该键值的数的和为多少。同时,Marser可能会发现他的数列出了一些问题,所以他还想随时更改数列中任意一项的值。现在Marser有q个请求,每个原创 2020-07-23 20:55:09 · 1087 阅读 · 8 评论 -
To_Heart—题解——收集雪花
题目描述不同的雪花往往有不同的形状。在北方的同学想将雪花收集起来,作为礼物送给在南方的同学们。一共有n个时刻,给出每个时刻下落雪花的形状,用不同的整数表示不同的形状。在收集的过程中,同学们不希望有重复的雪花。你可以从任意 a时刻开始,在 b时刻停止。a到 b时刻中间的雪花也都将被收集。他们希望收集的雪花最多。输入格式第一行一个正整数 ;第 2行n个非负整数表示n个时刻雪花的形状。输出格式最多能收集雪花的数量。样例输入样例51 2 3 2 1输出样例3首先分析题目,我原创 2020-07-26 21:54:21 · 1038 阅读 · 0 评论