码迷,mamicode.com
首页 >  
搜索关键字:DFS Troubleshooting    ( 10753个结果
ZOJ 3795 Grouping 强连通分量-tarjan
一开始我还天真的一遍DFS求出最长链以为就可以了不过发现存在有向环,即强连通分量SCC,有向环里的每个点都是可比的,都要分别给个集合才行,最后应该把这些强连通分量缩成一个点,最后保证图里是 有向无环图才行,这个时候再找最长链,当然缩点之后的scc是有权值的,不能只看成1,缩点完了之后,用记忆化搜索D...
分类:其他好文   时间:2014-08-10 18:17:30    阅读次数:199
poj 1330 Nearest Common Ancestors (LCA)
题意:求两个点的最近公共祖先。 1A#include #include #include #include #define maxn 100010 using namespace std; int fa[maxn],lev[maxn],pre[maxn],c1,c2; vector son[maxn]; bool dfs(int rt,int obj) { for(int i...
分类:其他好文   时间:2014-08-10 15:42:40    阅读次数:261
hdu 2987最大权闭合图模板类型题
/* 最大权闭合图模板类型的题,考验对知识概念的理解。 题意:现在要辞退一部分员工,辞退每一个员工可以的到一部分利益(可以是负的),并且辞退员工,必须辞退他的下属,求最大利益和辞退的最小人数。 最大权闭合图模板类型。 求出最大权后沿着源点s,dfs到的点就为最小的人数。 证明/* 转载:利用一个经典的trick:多关键字 > 建图前,对所有b[i],执行变换b[i]=b[i]*10000-1,然后...
分类:其他好文   时间:2014-08-10 15:42:20    阅读次数:237
POJ 1330 LCA最近公共祖先 离线tarjan算法
题意要求一棵树上,两个点的最近公共祖先 即LCA现学了一下LCA-Tarjan算法,还挺好理解的,这是个离线的算法,先把询问存贮起来,在一遍dfs过程中,找到了对应的询问点,即可输出原理用了并查集和dfs染色,先dfs到底层开始往上回溯,边并查集合并 一边染色,这样只要询问的两个点均被染色了,就可以...
分类:其他好文   时间:2014-08-10 15:39:20    阅读次数:215
二分图搞法
匈牙利算法int dfs(int x){ for(int i=1;i<=m;i++){ if(!used[i]&&g[x][i]){ used[i]=1; if(link[i]==-1||dfs(link[i])){ ...
分类:其他好文   时间:2014-08-10 12:34:10    阅读次数:227
UESTC 2014 Summer Training #18 Div.2
A.UVALive 6661 题意从1~N中选k个数,和为s的方案数 第一眼搜索,估计错状态量,又去yydp...浪费大量时间 数据很小的,状态数都不会超过2^N...直接dfs就过了//state二进制表示选取的数#include #include #include #include usi...
分类:其他好文   时间:2014-08-10 01:36:39    阅读次数:336
codeforces 455B A Lot of Games (Trie + dfs)
题目大意: 两个人往一个空的字符串里填单词,每一次只能填一个,而且填完之后要是给出的N个字符串的前缀。 思路分析: 先用给出的所有单词建字典树。 然后从根节点开始dfs。 win [x] 表示踩在x节点上是否有必胜策略 lose [x] 表示踩在x节点上是否有必败策略。 然后是博弈的过程。 如果先手有必胜和必败的策略,那么他可以一直输到k-1 如果只有必胜策略。那么只有当...
分类:其他好文   时间:2014-08-09 21:32:19    阅读次数:255
POJ 2362
知识点:dfs(深度优先搜索)题解:基本的dfs搜索判断可行性问题。一般的dfs搜索,如果不加剪枝,复杂度是指数级的,所以必须要能发掘出优秀的剪枝条件;在本题中,一般有如下剪枝:①:所有线段的长度之和必须为4的倍数;②:搜索之前,把所有线段按从大到小排序,因为长度越长,在拼凑时的灵活度就越低;③:当...
分类:其他好文   时间:2014-08-09 18:25:48    阅读次数:249
Codeforces 455C Civilization(并查集+dfs)
题目链接:Codeforces 455C Civilization 题目大意:给定N,M和Q,N表示有N个城市,M条已经修好的路,修好的路是不能改变的,然后是Q次操作,操作分为两种,一种是查询城市x所在的联通集合中,最长的路为多长。二是连接两个联通集合,采用联通之后最长路最短的方案。 解题思路:因为一开时的图是不可以改变的,所以一开始用dfs处理出各个联通集合,并且记录住最大值,然后就...
分类:其他好文   时间:2014-08-09 13:30:57    阅读次数:233
HDOJ 1142 A Walk Through the Forest 【Dijkstra】+【DFS】
题意:从2到1的所有路径中找出最短的路,并且输出最短路径有几条。 策略:先求出最短路径,然后再找出从2到1的最短路径有几条。最短路径用dijkstra算法来求出,什么是dijkstra算法,简单来说,dijkstra算法就是路径长度递增次序产生最短路径的算法: 基本思想是:把集合V分成两组; (1)S:已求出最短路径的顶点的集合 (2)V-S=T:尚未确定最短路径的顶点集合 将T中顶点按...
分类:其他好文   时间:2014-08-09 11:45:57    阅读次数:275
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!