题意:
一幅有向图是不是仙人掌
思路:
有向图仙人掌是强连通图且每条边最多只属于一个环
一幅有向图是仙人掌当且仅当满足3个条件:
1、dfs树无横向边
2、对于节点u的所有儿子v,它们的low[v]
3、满足low[v]
证明见 http://download.csdn.net/detail/kksleric/4502360
代码:
#include
#include
#i...
分类:
其他好文 时间:
2014-08-27 14:43:58
阅读次数:
196
和poj3107,poj1655一样的方法#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define INF 100000000...
分类:
其他好文 时间:
2014-08-08 04:18:05
阅读次数:
350
和poj1655的方法完全一样,但是这道题的n的范围大了,用vector存图会TLE,所以改用前向星来存图就可以了。这里解释一下前向星存图的方法:其实就是用静态链表来实现邻接链表,这样可以避免使用指针。head[i]数组来记录每个节点的第一条边;每条边用结构体e[i]来存,e[i].v表示这条边指向...
分类:
其他好文 时间:
2014-08-08 04:17:45
阅读次数:
321
方法:就记节点1为树的根,两次dfs,第一次求出每个节点的所有子孙再加上它自己的节点总数num[i]。第二次就算出每个节点的balance值bal[i],算的时候就比较节点i它所有子节点的num值(删掉它之后以每个它的子节点为根形成一棵新树)还有n-num[i]的值(删掉i之后它的父节点及其相关节点...
分类:
其他好文 时间:
2014-08-08 04:16:45
阅读次数:
237
题目链接:点击打开链接
题意:
给定一个无向图
任选一个起点,使得访问每个点的次数奇偶与最后一行的输入一致
思路:
选一个奇数点作为起点
dfs树一下,若子节点不满足则先走到子节点再回来
如此就能保证所有子节点合法
这样dfs结束后最多只有根节点不满足,随便找一个与根相连的点调整一下。
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2014-08-02 21:02:49
阅读次数:
433
知识点:树的重心
定义:以这个点为根,那么所有的子树(不算整个树自身)的大小都不超过整个树大小的一半。
性质:
性质 1 :树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个距离和,他们的距离和一样。
性质 2 :把两棵树通过某一点相连得到一颗新的树,新的树的重心必然在连接原来两棵树重心的路径上。
性质 3 :一棵树添加或者删除一个节点,树的重心最多只移动一...
分类:
其他好文 时间:
2014-07-27 11:44:53
阅读次数:
238
好题! 但是感觉题目描述不是很清楚
这题只是询问开除某人后,他的下属中谁会替代他的位置,不会更新这个位置
要求一个子树中忠诚度最高的人。可以想到dfs树,保留时间戳,每个节点便表示一个区间
那么便可以建树维护最高忠诚度。。。只是要保证能力值也要比被开除者高
那么根据能力值从大到小对员工排序,依次更新。那么可以保证之前更新的节点的能力值都大于当前要查询的节点
这里要注意一点,能力值相同...
分类:
其他好文 时间:
2014-07-16 10:20:16
阅读次数:
235