
树
youth.lin
a tyro at CS and NLP.
展开
-
九度OJ 1078 二叉树遍历(已知前中序求后序)
原题地址:http://ac.jobdu.com/problem.php?pid=1078题目描述:二叉树的前序、中序、后序遍历的定义:前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树;中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树;后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。给定一棵二叉树的前序遍历和中原创 2017-03-26 16:49:15 · 393 阅读 · 0 评论 -
HDU 1166 敌兵布阵(树状数组)
题目http://acm.hdu.edu.cn/showproblem.php?pid=1166 给出数组A的每个元素的值,执行以下三种操作: Add(i, j):A[i]加上j Sub(i, j):A[i]减去j Query(i, j):求A[i], A[i+1]…A[j]的和解题思路树状数组的裸题。树状数组( Binary Indexed Tree,BIT,二分索引树)的原创 2017-06-30 20:24:17 · 258 阅读 · 0 评论 -
PAT 1079 Total Sales of Supply Chain(树遍历+BFS)
题目https://www.patest.cn/contests/pat-a-practise/1079 题意:将零售商-经销商-供应商这条链抽象为一棵树;供应商作为根节点,出货物的价格为p,然后从根结点开始每往下走一层,该层的货物价格将会在父亲结点的价格上增加r%,给出每个叶结点(即零售商)的货物量,求他们的价格之和。解题思路供应商-经销商-零售商三者的关系可以看作是树的根节点-内部节点-叶原创 2017-06-29 15:34:23 · 389 阅读 · 0 评论 -
PAT 1020 Tree Traversals(树重建+BFS)
题目https://www.patest.cn/contests/pat-a-practise/1020 题意:给定二叉树的后序、中序遍历结果,输出其层次遍历结果解题思路首先重建树,关于利用含中序的两种序列构建这棵二叉树,详见之前的博客二叉树遍历(已知前中序求后序),最后根据这棵树的层次做输出,一遍BFS就可以解决。AC代码#include <iostream>#include <queue原创 2017-06-06 23:23:32 · 296 阅读 · 0 评论 -
PAT 1021 Deepest Root(树的直径+BFS+并查集)
题目https://www.patest.cn/contests/pat-a-practise/1021 题意:给出一张图,判断该图能否形成一棵树,若能则求出树的最长简单路(树的直径),否则求出连通分量的个数。解题思路本题是树的直径+并查集的应用,似乎是某C9的机试题之一。解决这道题的整体思路是: 1. 先通过并查集判断连通分量的个数,若连通分量只有1个就说明不存在森林; 2. 对剩下原创 2017-06-16 14:29:44 · 395 阅读 · 0 评论 -
PAT 1004 Counting Leaves(BFS+模拟树)
原题地址https://www.patest.cn/contests/pat-a-practise/1004 题意:一棵有N个结点的树,其中有M个结点是非叶子结点,给出每个非叶子结点的孩子结点编号,求出每一层上的非叶子结点个数。解题思路本题考察树的结构,这种看似树结构,但用数字编号表示节点的题目,经常可以用数组模拟,无需构造出一棵树。数据结构: 注意到结点编号最多为两位,因此100以内的原创 2017-05-10 12:28:12 · 434 阅读 · 0 评论 -
HDU 1233 还是畅通工程(最小生成树 Prim+Kruskal)
原题地址http://acm.hdu.edu.cn/showproblem.php?pid=1233 题意:(最小生成树裸题)有N个村庄,给出村庄两两之间的距离,要求铺设公路,使得任何两个村庄间都可以实现互通(不一定有直接的公路相连,只要能间接通过公路可达即可),计算最小的公路总长度。解题思路上一题《HDU 1232 畅通工程》考察的是并查集的应用,这一题考察了比较重要的最小生成树算法。 最原创 2017-05-02 22:54:42 · 692 阅读 · 0 评论 -
九度OJ 1107 搬水果(Huffman编码)
原题地址:http://ac.jobdu.com/problem.php?pid=1107题目描述: 在一个果园里,小明已经将所有的水果打了下来,并按水果的不同种类分成了若干堆,小明决定把所有的水果合成一堆。每一次合并,小明可以把两堆水果合并到一起,消耗的体力等于两堆水果的重量之和。当然经过 n‐1 次合并之后,就变成一堆了。小明在合并水果时总共消耗的体力等于每次合并所耗体力原创 2017-03-26 16:06:44 · 548 阅读 · 0 评论 -
九度OJ 1009 二叉搜索树
原题地址:http://ac.jobdu.com/problem.php?pid=1009题意:判断两输入序列是否为同一棵二叉搜索树序列。解题思路复习一下二叉搜索树(BST)的定义:对于树上的任意一个节点,其上的数值必大于等于其左子树上任意节点的数值,必小于等于其右子树上任意节点的数值。即左子树。二叉搜索树的建立:通过每次向树中插入数字x来构造这棵树,如果当前树根为空,原创 2017-03-26 22:59:47 · 392 阅读 · 1 评论 -
九度OJ 1113 二叉树(完全二叉树)
原题地址:http://ac.jobdu.com/problem.php?pid=1113 (由于原始版面的排版实在有些不好看,所以就不贴过来啦。优快云旧版的编辑器适应不了,这次尝试用markdown写) 题意:给定一棵共有节点数为n的完全二叉树,对它每一层的节点从左到右编号,第一层为1,第二层为2、3,第三层为4、5、6、7……然后输入一个编号m,求以m为根的子树下共有多少节点。原创 2017-03-26 20:49:57 · 467 阅读 · 0 评论 -
EOJ 1076 染气球(树状数组)
题目http://acm.ecnu.edu.cn/problem/1076/ http://acm.hdu.edu.cn/showproblem.php?pid=1556 题意:给定区间[1, N],每次输入一对整数a, b表示区间[a, b]中的每个元素都加1,最后统计[1, N]中每个元素的值。解题思路题目看上去很简单,但是如果单纯遍历[a, b]对数组元素更新,会超时,原因是这样一个个原创 2017-09-10 15:23:59 · 490 阅读 · 0 评论