树
wym_king
谁终将声震人间,必长久深自缄默;谁终将点燃闪电,必长久如云漂泊。
展开
-
Huffman编码 (二叉树)
Huffman编码是一种无损压缩编码方案。 思想:根据源字符出现的(估算)概率对字符编码,概率高的字符使用较短的编码, 概率低的字符使用较长的编码,从而使得编码后的字符串长度期望最小。 Huffman是一种贪心算法:每次总选择两个最小概率字符结点合并。 称字符出现的次数为频数,则概率等于频数处于字符串总长;因此,频率可以用频数替代。 ...原创 2018-08-02 19:34:23 · 3453 阅读 · 0 评论 -
2013年多校赛 hdu4607
题目传送门题意:有n个景点,存在n-1条双向边,长度为1,游玩k个景点,求最短路长 题解:这个图符合树的定义,要走最短的路,那么就是要求回头路最少 那么就考虑树上最长距离,树的直径, 如果访问的点大于树的直径就要走回头路,答案即多的数乘2加上原来树的直径 若k<直径,只要走k-1长度即可#include <iostream>#include &...原创 2018-09-10 20:07:47 · 102 阅读 · 0 评论 -
二叉排序树
二叉排序树(Binary Sort Tree)性质:1.若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值;2.若它的右子树不空,则右子树上所有结点的值均大于它的根节点的值;3.它的左右子树也分别为二叉排序树操作:1.插入,若一个元素比当前结点小,插入左边,反之插入右边2.删除 1)删除结点有左右孩子,找到这个结点右子树中最小的替代当前结点 ...原创 2018-12-17 23:44:56 · 243 阅读 · 0 评论 -
L2-006 树的遍历
#include <bits/stdc++.h>using namespace std;//2 3 1 5 7 6 4 后序 //1 2 3 4 5 6 7 中序 struct node{ int n; node *lc,*rc;};int in[35],post[35],n; node * create(int pl,int pr,int inl,in...原创 2019-02-28 19:53:43 · 257 阅读 · 0 评论 -
E旅行商问题
从1走遍所有点,则必定会重复走很多路,选择从一到最远的一条路只走一边,其他全都要走两遍。#include <bits/stdc++.h>#define LL long longusing namespace std;const int MAXN = 500000 + 10;struct Edge{ int to, next, w;} edge[2 * ...原创 2019-03-16 17:33:31 · 178 阅读 · 0 评论 -
P3372 【模板】线段树 1 线段树模版+懒惰标记
【模板】线段树 1#include <bits/stdc++.h>using namespace std;#define ll long longconst int maxn = 100005;int a[maxn];struct N{ int l,r; ll pre,add;}node[4*maxn+5];void build(int p,int l,i...原创 2019-04-21 16:29:25 · 209 阅读 · 0 评论 -
P3373 【模板】线段树 2
P3373 【模板】线段树 2乘法优先还是加法优先①加法优先,即规定好segtree[root*2].value=((segtree[root*2].value+segtree[root].add)*segtree[root].mul)%p,问题是这样的话非常不容易进行更新操作,假如改变一下add的数值,mul也要联动变成奇奇怪怪的分数小数损失精度,我们内心是很拒绝的;②乘法优先,即规...原创 2019-04-21 18:27:17 · 121 阅读 · 0 评论 -
树状结构之主席树
树状结构之主席树写的太好了!原文读更好哦(懒得复制粘贴转载 2019-04-22 16:26:58 · 105 阅读 · 0 评论 -
P3834 【模板】可持久化线段树 1(主席树) (多次查询第k大或第k小)
P3834 【模板】可持久化线段树 1(主席树)#include <bits/stdc++.h>using namespace std;const int maxn = 300000;int sum[maxn*20+5];//sum为森林的不同根结点struct E{ int num; int l,r;}t[maxn*20+5];//t为tree树 i...原创 2019-04-22 21:19:10 · 158 阅读 · 0 评论