树
文章平均质量分 83
StevenIsSnail
辛苦理所当然。年轻就拼搏。挑战不确定。
展开
-
【线段树】HDU1542 线段树求面积周长
hdu1542用线段树A过~ (2010-12-01 17:00:18)转载▼标签: 线段树 点值 横坐标 k-1 横线分类: 线段树1542这个题用线段树做,有两个收获,一是复习了类似的离散化,段更新求面积周长的方法,另外,就是学到了如何把“点值”转换成“段值”,线段树转载 2014-10-17 20:31:32 · 572 阅读 · 0 评论 -
【数据结构_二叉树+dfs】
Flatten Binary Tree to Linked List Total Accepted: 17814 Total Submissions: 64054My SubmissionsGiven a binary tree, flatten it to a linked list in-place.For example,Given 1原创 2014-08-02 23:15:45 · 597 阅读 · 1 评论 -
【树形dp】Binary Tree Maximum Path Sum
Binary Tree Maximum Path Sum Total Accepted: 14936 Total Submissions: 75024My SubmissionsGiven a binary tree, find the maximum path sum.The path may start and end at any node in the tr原创 2014-08-01 22:59:16 · 857 阅读 · 0 评论 -
【lintcode】树形数据结构之Maxtree, Tree iterator, remove bst node, 优先队列之动态中位数Median, 矩阵dfs之word search II,最大连
maxtree:http://lintcode.com/submission/60239/九章算法中有讲到, 对每个节点,找到离他最近且比它大的左右两个节点中较小的那个,作为他的父节点。其中,找父节点: 用递增栈分别从左向右和从右向左扫描一次,对每个节点取栈顶元素即可。 在O(n)时间里就可以找到距离该节点最近的比他大的节点。/** * Definition of T原创 2014-12-11 01:38:00 · 3271 阅读 · 0 评论 -
RMQ-ST 解决在线LCA
#include #include #include #include using namespace std;int L=0, R=999999; int t[1000000];int s[1000000];int m[1000000]; // idx of node with min depth in sort-vq[]int d[1000000];原创 2014-10-25 21:41:01 · 941 阅读 · 0 评论 -
【线段树】基本写法,区间极值,区间延迟更新,多延迟标签
struct tree{ nodes[MAXN]; void drillD原创 2014-10-17 23:54:40 · 1076 阅读 · 1 评论 -
【dp/后缀树】最长回文串、最长重复回文串、最长非重复回文串。。
DP:k = i + min原创 2014-10-28 21:10:27 · 838 阅读 · 0 评论 -
【树DP+背包】求树的最小点覆盖的点个数
这个是dfs中用dp,当前点状态取决于其子节点的状态,具体转换如下:i,0表示以i为根的子树被覆盖,i点未放置的最小数目i,1表示以i为根的子树被覆盖,i点放置的最小数目i,2表示i的子树被覆盖,i点未被覆盖的最小数目之所以有这三种状态,是因为,一个点被覆盖的方式有三种:该点被放置,该点的子节点放置,该点的父节点放置i,0 =sigm(min(j,0;j,1;j,2)且转载 2014-10-17 19:42:37 · 601 阅读 · 0 评论 -
【漂浮法或线段树】 解决矩阵覆盖(计算几何)问题
HDU1542漂浮法怎么这么犀利~~~ (2010-11-24 18:38:22)转载▼标签: 杂谈分类: acm题目与算法转载 2014-10-17 19:06:09 · 717 阅读 · 0 评论 -
【dfs+线段树get/set】 编程之美 tree
题目2 : 树时间限制:4000ms单点时限:2000ms内存限制:256MB描述有一个N个节点的树,其中点1是根。初始点权值都是0。一个节点的深度定义为其父节点的深度+1,。特别的,根节点的深度定义为1。现在需要支持一系列以下操作:给节点u的子树中,深度在l和r之间的节点的权值(这里的深度依然从整个树的根节点开始计算),都加上一原创 2014-09-29 14:21:09 · 559 阅读 · 0 评论 -
【树dp+状态机背包】 自驾旅行III 找最小权路径
递推方程:原创 2014-10-05 23:43:59 · 985 阅读 · 2 评论 -
hdu2665 可持续化线段树
分类: 数据结构 可持续化线段树。我是看这个看懂的http://hi.baidu.com/wyl8899/item/e00796a9cb2df73d020a4d68可持续化线段树,主要思想就是利用历史信息,减少时间和内存花销。比方有两棵线段树,但是他们只有一个节点信息不同。仔细一想,在这两颗线段树上,对应的 [l,r]节点 只有log(n)个节点不同。那么,除了不同的节转载 2014-10-06 21:46:57 · 761 阅读 · 0 评论 -
【编程之美】初赛第二题 树
分类:C++ 算法 2014-04-22 14:27 463人阅读 评论(0)收藏 举报树状数组算法c++编程之美微软时间限制:4000ms单点时限:2000ms内存限制:256MB描述有一个N个节点的树,其中点1是根。初始点权值都是0。一个节点的深度定义为其父节点的深度+1,。特别转载 2014-09-18 11:10:10 · 517 阅读 · 0 评论 -
【树递归】找包含节点0共M个节点的最大(权)连通子树||找最长直径
#include#include using namespace std;void dfs(vector > &edges,vector > &tree,int p,int n){ for(int i=0;i<edges[n].size();i++){ int j=edges[n][i]; if(p==j) continue; tree[n].push_back(原创 2014-09-21 00:31:37 · 860 阅读 · 0 评论 -
【图\树的BFS\DFS】 Word Ladder II (MinPath)、Surrounded Regions 、Add Next pointer in tree、zigzag bfs Tree
Word Ladder II Given two words (start and end), and a dictionary, find all shortest transformation sequence(s) from start to end, such that:Only one letter can be changed at a timeEach原创 2014-08-01 21:35:31 · 739 阅读 · 1 评论 -
【树dp】 缩地(d步内最大权值)
这个题目的地推方程优良种原创 2014-10-05 15:18:45 · 738 阅读 · 0 评论 -
【区间查询_树状数组、线段树、次方数组】最大矩形
线段树(quanclass Solution {public: #define MAXN 0x7fffffff ////线段树 struct tree{ vector > arr; int n; void init(const vector &s){ n=s.size();原创 2014-08-02 15:44:21 · 783 阅读 · 1 评论 -
【数据结构+线段树】连续型/离散型线段树
在线段树的通常用法中,线段树的节点是有2种不同的意义的,一种是离散型的:一个节点虽然描述的是一个区间[3, 9],但是实际上这样一个区间是{3, 4, 5, 6, 7, 8, 9}这样的意义。而另一种就是连续型的:一个节点如果描述的是一个区间[3, 9],它就确确实实描述的是在数轴上从3这个标记到9这个标记的这一段。那么有的小朋友可能就要问了,这两种不同的意义有什么区别呢?原创 2014-11-23 02:22:24 · 750 阅读 · 0 评论 -
【树dp】acm 2014 西安赛区 J Unlimited Battery Works
cnt[node][depth] 记录把node及其子树除了最上面得票团原创 2014-10-26 15:30:35 · 1242 阅读 · 0 评论 -
离散化压缩线段树
线段树(Interval Tree) 线段树是一种二叉搜索树,将一个大区间划分成单元区间,每个单元区间对应一个叶子节点;内部节点对应部分区间,如对于一个内部节点[a, b]而言,其左子节点表示的区间为[a, (a+b)/2],其右子节点表示的区间为[1+(a+b)/2, b]; 对于区间长度为N的线段树,由于其单元节点都是[a, a]的叶子节点,所以其叶子节点数为N,并且整棵树转载 2014-09-29 10:36:27 · 931 阅读 · 1 评论