
树
我的程序跑快快
这个作者很懒,什么都没留下…
展开
-
HihoCoder - 1069(LCA的DFS序+ST表求法,模板)
目前完成了2号结构,可能会爆内存,后面会研究一下原因 代码: // HihoCoder - 1069.cpp /* 一颗树结构求lca: 1.输入一串查询序列,离线Tarjan算法一次算出 2.一次初始化,之后每次查询快速得到答案,压DFS序之后,每次查询区间深度最小值 3.初始化ST表,每次倍增求 */ #include <iostream> #include <st...原创 2019-11-07 11:17:39 · 249 阅读 · 0 评论 -
CodeForces - 686D Kay and Snowflake(求一棵树的每颗子树的重心)
分析: #include <iostream> #include <vector> #include <algorithm> using namespace std; const int maxn = 1000052; vector <int> u[maxn]; int n, m, ans[maxn], s[maxn], fa[maxn]; void...原创 2019-11-06 21:35:50 · 385 阅读 · 0 评论 -
HDU - 5039 Hilarity(树dfs序+线段树)
题目大意: 输入一颗n(n≤30000)n(n≤30000)n(n\le30000)个点的无根的边权树,边权值域 {0,1}{0,1} \{0,1\} 。 之后有m(m≤60000)m(m≤60000)m(m\le60000)次操作,操作分为两种。 第一种:修改某一条边的权值(从0变1 或 从1变0); 第二种:查询整棵树有多少条不同的路径满足,路径权值和为奇数。 分析: 首先...原创 2018-05-10 23:34:29 · 334 阅读 · 0 评论 -
小根堆实现“优先队列”数据结构及“堆排序”算法(C/C++)
功能介绍: min_heap p;//声明小根堆 p.len;//堆的大小 p.add(x);//将数据x插入堆中 p.del();//删除堆顶元素 p.top();//返回堆顶元素 p.print();//层序遍历顺序输出堆中元素 p.build(a,n);//将数组a[]的前n个元素建立小根堆( 时间复杂度:O(n) ) p.clear();//清空堆中元素 p.psort();//将p中元素...原创 2019-02-18 15:34:10 · 1190 阅读 · 0 评论