ICode9

精准搜索请尝试: 精确搜索
  • 2.42022-07-25 20:31:35

    2.4 一些数据结构  1.树和二叉树   2.优先队列和堆 优先队列: 可以插入一个数值 取出最小的数值(获得数值,并且删除)      注意:能使用让二叉树来实现一个优先队列的数据结构,是 ”堆“  堆:                  堆操作时间复杂度 O(n):因为堆两种操作所花的时间都和树的

  • PAT Advanced Level 1162 Postfix Expression(25)2022-06-03 10:32:26

    题目链接

  • HEOI2012采花2022-02-16 20:04:07

    题目大意 给定一个序列,求区间出现次数为2次的数字有多少? \(n \leq 10^6\) 思路一 首先处理出第\(i\)个数上次出现的位置\(pre_0\),上上次出现的次数\(pre_1\),维护一个权值数组表示到第\(i\)个位置时的数字分布情况。 和HH的项链一样,离线查询维护即可。 由于答案具有前缀和性质,用树

  • 2022-1-25数据结构总结(3)2022-01-25 19:02:19

    二叉树的建立 ​ #include<stdio.h> #include<string.h> struct Tree{ int data; struct Tree *Lch, *Rch; }BiTNode, *BiTree; //递归创建二叉树 BiTNode *CreatTree(BiTree &wroot){ int x; scanf("%d",&x); if(x==1){ //输入x=

  • 【hdu6547】Tree(树链剖分, 线段树区间根号)2021-10-18 19:32:11

    problem algorihtm 1、树链剖分 什么是树链剖分(重链剖分)? 树链,就是树上的路径。剖分,就是把路径分类为重链和轻链。对于树上的一个点,与其相连的边中,连向的节点子树大小最大(重儿子) 的边叫做重边,其他的边叫轻边。重边连成的边叫做重链。下图中黑色加粗的为重链。 树链剖分(重链

  • 《挑战程序设计竞赛——世界一流程序设计高手的经验总结》阅读笔记(第二章 初出茅庐——初级篇:数据结构与图论)2021-08-12 23:34:02

    第二章 初出茅庐——初级篇:数据结构与图论 本章涉及的两个主题都与结构化有着莫大联系。 加工并存储数据的数据结构 作者给出的定义非常贴切: 数据结构是存储数据的方式,按照不同的方式存储数据,可以对数据做不同的高效操作。 下面按照二叉搜索树、满二叉堆和并查集的顺序对各结构和

  • 哈夫曼树模板2021-03-26 22:00:45

    #include<iostream> #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; const ll N=2000000; int n; struct tree { int data,rch,lch,num; }f[N+1],a[N+1];//f数组用来储存哈夫曼树的节点,其中1~n号存的是叶子节点 //a数组用来给每个二叉

  • 数据结构—造树计划—二叉搜索树2021-03-05 13:03:47

    目录数据结构—造树计划—二叉搜索树定义功能插入寻找删除完整代码其他参考资料 数据结构—造树计划—二叉搜索树 定义 struct node{ int val; node *lch, *rch; }; 功能 插入 使命:值val 思路:若值小于当前结点的值,则该点移向该节点的左儿子树(p->lch = insert(p->lch,x) 情

  • 来学算法 #9 AVL树 (2) : 实现2021-02-12 21:05:05

    在实现34重构后,我们只需要实现插入和删除数据的函数就可以完成AVL树的实现了,AVL的重构核心已经给出了,不再赘述。直接放上完成的代码。 #include <bits/stdc++.h> typedef struct node { int data; struct node *father; struct node *lch; struct node *rch

  • 三色二叉树 ---伪树形dp2020-05-28 21:52:29

    题目描述 一棵二叉树可以按照如下规则表示成一个由0、1、2组成的字符序列,我们称之为“二叉树序列S”: 0 该树没有子节点 1S1 该树有一个子节点,S1为其二叉树序列 1S1S2 该树有两个子节点,S1,S2分别为两个二叉树的序列 例如,下图所表示的二叉树可以用二叉树序列S=21200110来表示。 你

  • 第一周学习日志2020-04-30 22:54:07

    学习日志 typedef struct node {telemtype data ; struct node lch,rch; }bin,*bit; //二叉链表定义 void xxbl(bit root) {if(root==NULL) return ; else { visit(root->data); xxbl(root->lch); xxbl(root->rch); } } //先序遍历

  • 数据结构---二叉搜索树2020-02-06 15:01:50

    1 #include <cstdio> 2 #include <iostream> 3 4 using namespace std; 5 6 struct node 7 { 8 int val; 9 node *lch,*rch; 10 }; 11 12 node *insert(node *p,int x) 13 { 14 if(p==NULL) 15 { 16 // 申请一个

  • P3372 【模板】线段树 12019-08-17 15:54:33

    #include<cstdio> using namespace std; struct ben { long long l,r,val,mark; }tr[400005]; long long a[100005]; void bt(long long x,long long l,long long r) { tr[x].l=l; tr[x].r=r; if(l==r) { tr[x].val=a[l]; return ;

  • permu:莫队+线段树2019-08-10 21:53:39

    这道题是几天前水过去的,现在快没印象了,水一发。 首先我们看到它让求解的是最长的值域 连续段长度,很好。 然后就想到了山海经,但但是我还没有做。 然后又想到了很久以前的一次考试的T3旅馆hotel(我是用暴力直接过的QAQ),正解也是线段树。 但是我还是想不到用线段树,因为我单纯的认为当

  • 第五章学习小结2019-05-04 22:38:36

    一、树的建立 首先要做的事当然是建树,各种操作都是基于一棵树上的   int BulidTree(node t[]){ bool check[100] = {false}; int n; char x, y; cin >> n; for (int i=0; i<n; i++){ cin >> t[i].name >> x >> y; if(x!=

  • 第五章小结2019-05-04 12:45:46

    1.第五章中有很多关于树的定义需要搞清楚,下面是几个我容易搞混的或者没有注意到的 (1)结点的度:结点拥有的子树数。 (2)树的度:树内个结点度的最大值 (3)树的深度:树中结点的最大层次称为树的深度或高度 (4)有序树和无序树:树中结点的各子树看成从左到右是有次序的,为有序树,否则为无序树 (5)完全二

  • [BZOJ 3514]Codechef MARCH14 GERALD07加强版 (CHEF AND GRAPH QUERIES)2019-02-13 19:38:03

    [BZOJ3514] Codechef MARCH14 GERALD07加强版 (CHEF AND GRAPH QUERIES) 题意 \(N\) 个点 \(M\) 条边的无向图,\(K\) 次询问保留图中编号在 \([l,r]\) 的边的时候图中的联通块个数。 部分数据强制在线. \(1\le N,M,K\le200,000\) 题解 有点意思的LCT题. 原题好像不强制在线于是可

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有