
数据结构
Minakami_Yuki
主业死宅,副业写代码
展开
-
Uva-10410 Tree Reconstruction
题目链接:Tree Reconstruction题目大意:给定一棵树的DFS序和BFS序,求这棵树。解题思路:先跑一遍BFS,并将每个节点映射成BFS序,由于BFS的特性,其序号越大,离根结点的距离相等或更远。接着遍历DFS序,并用栈维护结点之间的关系,若当前序号比栈顶元素大,则该结点为孩子结点,否则pop掉栈顶元素继续与下一个元素比较。由于只告诉BFS和DFS序所建立的树并不唯一,所以我们强制认为原创 2015-09-10 00:35:15 · 528 阅读 · 0 评论 -
Uva-536 Tree Recovery
题目链接:Tree Recovery题目大意:已知一棵树的先序遍历和中序遍历顺序,求它的后序遍历顺序。解题思路:关键在于找到父结点的位置,然后递归建树即可。代码如下:#include <map>#include <stack>#include <queue>#include <cstdio>#include <vector>#include <sstream>#include <cstd原创 2015-09-10 01:01:13 · 357 阅读 · 0 评论 -
POJ-1984 Navigation Nightmare
题目链接:Navigation Nightmare题目大意:按照时间顺序给一些点的相对位置。有若干询问,每个询问给出两个点的编号以及时间,若在此时间内该两点相对位置确定则输出其曼哈顿距离,否则输出-1。解题思路:很好的一道带权并查集问题,由于询问中的时间条件我纠结了很久,最后参考网上代码,按照询问的时间顺序来合并点并保存答案就行了。注意在更新相对位置的时候最好自己画一下图。代码如下:#include原创 2015-09-15 22:05:59 · 647 阅读 · 0 评论