随笔分类 - 

数据结构非顺序结构
摘要:tarjan算法求LCA //tarjan算法 #include<bits/stdc++.h> using namespace std; const int maxn=5e5+10; vector<int> tre[maxn]; struct node{ int to; int id; }; vec 阅读全文
posted @ 2022-11-08 19:22 心悟&&星际 阅读(21) 评论(0) 推荐(0) 编辑
摘要:题目描述异或是一种神奇的运算,大部分人把它总结成不进位加法.在生活中…xor运算也很常见。比如,对于一个问题的回答,是为1,否为0.那么:(A是否是男生 )xor( B是否是男生)=A和B是否能够成为情侣好了,现在我们来制造和处理一些复杂的情况。比如我们将给出一颗树,它很高兴自己有N个结点。树的每条 阅读全文
posted @ 2022-11-07 19:43 心悟&&星际 阅读(18) 评论(0) 推荐(0) 编辑
摘要:问题描述 给定一棵有n个点的树(点的编号为1~n),根为1,点有点权,设点i的初始值为0,给出q个操作,每个操作给出两个点和一个值,u,v,t,表示将u到v的路径上的所有点加t,输出所有操作后每个点的点权,。 输入格式 第一行输入两个整数n,q表示树的点的数目与操作次数 下面n-1行,每行两个整数x 阅读全文
posted @ 2022-11-07 19:24 心悟&&星际 阅读(88) 评论(0) 推荐(0) 编辑
摘要:问题描述有一棵n个点的树,每个点i有点树v[i],q个询问求点u到点v最简路径上所有点权之和输入格式第一行n,q表示有n个点,q个询问第二行n个整数表示每个点的权下面n-1每行三个整数x,y,z描述边的信息及边长 下面q行每行两个整数u,v表示询问的两个点路径长度 输出q行,每行为u到v最简路径长度 阅读全文
posted @ 2022-11-07 18:49 心悟&&星际 阅读(26) 评论(0) 推荐(0) 编辑
摘要:dfs序前置知识:线段树,树状数组,LCA,树的存储,树的基础问题类型1.点修改,子树查询2.子树修改,点查询3.子树修改,子树查询4.链修改,点查询5.点修改,链查询6.链修改,子树查询7.子树修改,链查询(1-3)易,(4-5)中,(6-7)难 阅读全文
posted @ 2022-11-06 21:44 心悟&&星际 阅读(26) 评论(0) 推荐(0) 编辑
摘要:P3391 【模板】文艺平衡树splay解法1 #include <bits/stdc++.h> using namespace std; const int N = 100005; int ch[N][2], par[N], val[N], cnt[N], size[N], rev[N], roo 阅读全文
posted @ 2022-03-20 07:57 心悟&&星际 阅读(34) 评论(0) 推荐(0) 编辑
摘要:数据结构定义 typedef struct BiTNode { ElemType data; //数据域 ChildPtr *lchild,*rchild; //左右孩子的指针域 //可以开个指针域指向双亲,变为三叉链表 }BiTNode, *BiTree; 第一种:已知前序遍历、中序遍历求后序遍历 阅读全文
posted @ 2022-03-18 10:53 心悟&&星际 阅读(386) 评论(0) 推荐(0) 编辑
摘要:P3374 【模板】树状数组 1题解:线段树的单点更新,区间查询,注意线段树的结点个数是原数组的4倍 #include<iostream> #include<cstdio> using namespace std; long long s[2000100],a[501000],n,m,dx,dy; 阅读全文
posted @ 2022-03-07 15:13 心悟&&星际 阅读(32) 评论(0) 推荐(0) 编辑
摘要:P1621 集合 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<cstdlib> #include<cmath> #define maxn 100010 using namespa 阅读全文
posted @ 2022-03-06 18:19 心悟&&星际 阅读(25) 评论(0) 推荐(0) 编辑
摘要:P3367 【模板】并查集 #include<iostream> #include<algorithm> using namespace std; const int maxm=10010; int pre[maxm]; int n,m; void make()//初始化 { for (int i= 阅读全文
posted @ 2022-03-06 18:08 心悟&&星际 阅读(28) 评论(0) 推荐(0) 编辑
摘要:P1551 亲戚这里给出一个深度优先遍历的算法。O(n)的预处理,每个回答O(1)。 #include<iostream> #include<vector> using namespace std; vector <int> g[5001]; int d[5001]; int cnt=1; void 阅读全文
posted @ 2022-03-06 16:44 心悟&&星际 阅读(11) 评论(0) 推荐(0) 编辑
摘要:并查集(Disjoint-Set)是一种可以动态维护若干个不重叠的集合,并支持合并与查询的数据结构。详细地说,并查集包括如下两个基本操作:1.Get,查询一个元素属于哪一个集合。2.Merge,把两个集合合并成一个大集合。为了具体实现并查集这种数据结构,我们首先需要定义集合的表示方法。在并查集中,我 阅读全文
posted @ 2022-03-06 16:29 心悟&&星际 阅读(115) 评论(0) 推荐(0) 编辑
摘要:树上倍增求LCA先跑一遍dfs,知道每个结点的父结点是谁,记录在root[x][0],“x”是当前结点,“root[x][0]”是x结点向上一步得到的点(也称为父结点)。我们可以维护出来每个结点向上2k步会走到哪个结点。如果已经超出树的范围令root[x][k]=0预处理一下LOG()inline 阅读全文
posted @ 2022-03-04 14:49 心悟&&星际 阅读(24) 评论(0) 推荐(0) 编辑
摘要:堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:堆中某个结点的值总是不大于或不小于其父结点的值;堆总是一棵完全二叉树。将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。堆是非线性数据 阅读全文
posted @ 2022-03-03 22:18 心悟&&星际 阅读(845) 评论(0) 推荐(0) 编辑
摘要:【题目描述】如果二叉树的左右子树的结构是对称的,即两棵子树皆为空,或者皆不空,则称该二叉树是对称的。编程判断给定的二叉树是否对称.例:如下图中的二叉树T1是对称的,T2是不对称的。 二叉树用顺序结构给出,若读到#则为空,二叉树T1=ABCDE,T2=ABCD#E,如果二叉树是对称的,输出“Yes”, 阅读全文
posted @ 2022-03-03 09:34 心悟&&星际 阅读(199) 评论(0) 推荐(0) 编辑
摘要:已知一棵二叉树用邻接表结构存储,中序查找二叉树中值为x的结点,并指出是第几个结点。例:如图二叉树的数据文件的数据格式如下: 输入 第一行n为二叉树的结点个树,n<=100;第二行x表示要查找的结点的值;以下第一列数据是各结点的值,第二列数据是左儿子结点编号,第三列数据是右儿子结点编号。输出 一个数即 阅读全文
posted @ 2022-03-03 08:09 心悟&&星际 阅读(152) 评论(0) 推荐(0) 编辑
摘要:二叉树输出(btout)【问题描述】树的凹入表示法主要用于树的屏幕或打印输出,其表示的基本思想是兄弟间等长,一个结点要不小于其子结点的长度。二叉树也可以这样表示,假设叶结点的长度为1,一个非叶结点的长并等于它的左右子树的长度之和。一棵二叉树的一个结点用一个字母表示(无重复),输出时从根结点开始:每行 阅读全文
posted @ 2022-03-03 00:45 心悟&&星际 阅读(351) 评论(0) 推荐(0) 编辑
摘要:FBI树(fbi)【问题描述】我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。FBI树是一种二叉树[ 二叉树:二叉树是结点的有限集合,这个集合或为空集,或由一个根结点和两棵不相交的二叉树组成。这两棵不相交的二叉树分别称为这个 阅读全文
posted @ 2022-03-02 05:10 心悟&&星际 阅读(197) 评论(0) 推荐(0) 编辑
摘要:二叉树遍历(flist)【问题描述】树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序,给定中序和其它一种遍历的序列就可以确定一棵二叉树的结构。假定一棵二叉树一个结点用一个字符描述,现在给出中序和按层遍历的字符串,求该树的先序遍历字符串。【输入格式】输入文件flist.in共两行,每行是由字母 阅读全文
posted @ 2022-03-01 22:22 心悟&&星际 阅读(241) 评论(0) 推荐(0) 编辑
摘要:小球(DROP)【问题描述】 许多的小球一个一个的从一棵满二叉树上掉下来组成FBT(Full Binary Tree,满二叉树),每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。决定球运动方向的是每个节点的布尔值。最初,所有的节点都 阅读全文
posted @ 2022-03-01 22:14 心悟&&星际 阅读(88) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示