概述:本文主要讲述一些搜索算法的使用,以及其中奥妙思想的思考。 一:广度搜索与深度搜索---BFS与DFS 1:实现算法导论中的BSF #include #define MAX 1000000struct Node{ int d; int p; int color; int id;};int _tm...
分类:
其他好文 时间:
2014-07-16 23:08:16
阅读次数:
224
/* poj 3321 Apple Trie 这道题的关键是如何将一个树建成一个一维数组利用树状数组来解题! 可以利用dfs()来搞定,我们在对一个节点深搜后,所经过的节点的数目就是该节点的子树的数目 所以我们利用start[i]数组来记录 i 节点在一维数组的起始位置, 而end[i]则...
分类:
移动开发 时间:
2014-07-07 23:08:32
阅读次数:
400
class Solution {private: vector > res;public: vector > combine(int n, int k) { res.clear(); vector path; dfs(1, n, k, path)...
分类:
其他好文 时间:
2014-06-30 12:49:12
阅读次数:
205
和POJ2676一样哈,,,
原谅我水题目数 = =!。。。
#include
#include
#include
#include
using namespace std;
int map[10][10];
char tmp[10][10];
bool row[10][10];
bool col[10][10];
bool grid[10][10];
bool DFS(int x,i...
分类:
其他好文 时间:
2014-06-30 07:44:27
阅读次数:
226
同学们一定用过Windows中的绘图吧。那么绘图中的油漆桶功能是怎样实现的呢?这个问题能够通过DFS深度优先搜索解决。目标我们要实现的目标是在常数的时间内推断某两个节点是否连接。前面章节中介绍了并查集算法,并查集确实能够解决问题。我们今天来介绍第二种办法,那就是DFS深搜。为了解决问题专门建立一个对...
分类:
其他好文 时间:
2014-06-29 18:58:46
阅读次数:
261
DFS+字典树。题目数据很BT。注意控制DFS深度小于等于len。当'\0'时,还需判断末尾*。另外,当遇到*时,注意讨论情况。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 usin...
分类:
其他好文 时间:
2014-06-29 18:41:17
阅读次数:
160
本题解法很多,因为给出的数据特殊性故此可以使用DFS和BFS,也可以使用01背包DP思想来解。
这里使用BFS,缺点是比DFS更加耗内存,不过优点是速度比DFS快。
当然也比DFS难写点:
int N, B;
int Height[21];
inline int mMin(int a, int b) { return a > b? b : a; }
inline int mMax(int a...
分类:
其他好文 时间:
2014-06-28 08:11:26
阅读次数:
238
题目:
输入一个n个节点的无根树的各条边,并指定一个根节点,要求把该树转化为有根树,输出各个节点的父亲编号。
分析:分析在代码的注释中!
#include
#include
using namespace std;
const int MAXN = 1000;
int n, p[MAXN];
vector G[MAXN];
void dfs(int u, int fa...
分类:
其他好文 时间:
2014-06-28 06:56:57
阅读次数:
205
UVA 10317 - Equating Equations 贪心 dfs
ACM
题目地址:UVA 10317 - Equating
Equations
题意:
给一个等式,但是这个等式不一定是正确的,要你对等式中的数字重新排序,使得等式成立。等式只有+和-,数字个数小于16。
分析:
以a + b - c = d - e为例子。
1. 我们把等式右边的各...
分类:
其他好文 时间:
2014-06-27 23:40:58
阅读次数:
260
【】
【分析】真的是一道贪心好题。开始我以为是一道大水题。建立拓扑图后(没环就是方便!),直接把最外层设定序号为1,第二层为2,bfs下去即可。。。结果发现:飞行序号不能相同。。。于是开始想。
先考虑第一个问题:打印一个合法序列。我开始是这么想的:
观察每个飞机的最晚飞行序号Ki,因为必定有解,所以我们可以让它的序号就是Ki。然后用它的时间去更新前面的时间(图可以反向建立)。应该可以维护一个...
分类:
其他好文 时间:
2014-06-27 23:20:01
阅读次数:
209