线段树 这题的线段树+分类讨论蛮神奇的……我以前学的线段树简直就是渣渣QAQ 看了下ydc题解里的思想>_>用线段树维护连通性!那么就自己写吧……每个节点表示一段区间的连通性(我的叶子节点表示的是一个方块型的四个点之间的连通性,所以我直接n--了)对线段树上每个节点维护6个信息,即四个端点中任意.....
分类:
其他好文 时间:
2015-04-12 11:56:46
阅读次数:
308
回溯算法实际上是构造一棵推理树,并由树的叶子节点反向输出历史步骤;
其中,树的构建过程较为复杂;一种简化的方法是使用链表表连接和构造各个节点的关系;
以4皇后问题为例,采用C++ vector容器——避免使用指针(当然换成了整数来代替指针表达对象的位置),解决了该问题。整体算法思路清晰,便于理解。
见代码;与书中不同,此代码实际输出的是所有4皇后问题的不同走法...
分类:
编程语言 时间:
2015-04-11 19:33:35
阅读次数:
225
求一棵二叉树的最低子树的高度 思路:用队列实现广度优先搜索即可,将每一层的节点放入队列,然后弹出时将下一层节点放入,遇到叶子节点时即返回当前的高度 class Solution {public: int minDepth(TreeNode *root) { if (!root) return 0; ...
分类:
其他好文 时间:
2015-04-09 21:42:15
阅读次数:
105
题意Given a binary tree and a sum, find all root-to-leaf paths where each path’s sum equals the given sum.思路基本的深搜,注意一点就是必须是根到叶子节点求和,不可在非叶子节点处停。代码/**
* Definition for binary tree
* struct TreeNode {
*...
分类:
其他好文 时间:
2015-04-09 17:25:31
阅读次数:
147
一棵树的Prufer数列 每次在剩下的树中找到标号最小的叶子节点(对于无根树而言即是度数为1的节点),删去。 同时将其父节点(即与其相连的唯一点)加入Prufer数列当中。一个Prufer数列所对应的树 G集合开始为空集 设当前处理到Prufer数列的第i项,找到G集合中未出现且在Prufe...
分类:
其他好文 时间:
2015-04-06 18:31:30
阅读次数:
158
Behavior Tree行为树通过子Task的返回值决定整棵树的走向Task行为树上的每个节点都称为一个Task, 每个Task存在三种状态, success, failure, running。其中running是临时状态,仅叶子节点才能返回running状态,running结束后也要返回suc...
分类:
其他好文 时间:
2015-04-05 23:26:58
阅读次数:
196
题意:给你一颗完全二叉树,每条边有一个值,可以对这个值进行加操作,让你满足根节点到所有叶子节点路径值相同 ,问你最少要加多少值。解题思路:从上往下树形DP,位运算会比较方便。解题代码: 1 // File Name: b.cpp 2 // Author: darkdream 3 // Created...
分类:
其他好文 时间:
2015-04-05 21:54:18
阅读次数:
175
题意:给定一个树形图,节点数量3000。叶子节点是用户,每个用户如果能看上电视会交一定的电视费。看上电视的条件是从根到该用户的路径全部被修好,修每条边有一个费用。在不亏损(用户交钱总额>=修路总费用)的前提下,最多有多少人能看上电视。分析:树形dp。dp[u][i][j]表示对于u节点,只看其前i个...
分类:
其他好文 时间:
2015-04-05 21:36:57
阅读次数:
156
描述:如果把二叉树看成一个图,父子节点之间的连线看成双向的,定义“距离”为两个节点之间边的个数。求二叉树中相距最远的两个节点的距离。思路:相距最远的两个节点一定是叶子节点,且这两个叶子节点的路径有两种情况:1. 该路径经过root节点,则两个叶子节点分属root.left和root.right为根的...
分类:
其他好文 时间:
2015-04-05 18:43:45
阅读次数:
114
B. Om Nom and Dark Park在满二叉树上的某些边上添加一些值。使得根节点到叶子节点的路径上的权值和都相等。求最少需要添加多少。我们利用性质解题。 考察兄弟节点。由于他们从跟节点到父节点这路径是相同的,所以需要添加的值为 2...
分类:
其他好文 时间:
2015-04-05 08:57:38
阅读次数:
240