摘要:模拟+DFS。 1 /* 3459 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 10 7 #define MAXL 1005 8 9 #define U0 map[0][2] 10 #...
阅读全文
摘要:记忆化搜索。 1 /* 3419 */ 2 #include 3 #include 4 #include 5 6 #define MAXN 10 7 8 int ans; 9 int n[3];10 int x[3];11 bool visit[MAXN];12 int cnt[MAXN]...
阅读全文
摘要:双向BFS。注意,任何一个点出队后,首先需要考虑ghost。 1 /* 3085 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 ...
阅读全文
摘要:BFS。当水滴破裂飞溅后,直到碰到水滴才会停止(观察case1)。同时,考虑当水滴飞溅到点(x,y)并且该点同一时间破裂的情况,该水滴算作吸收。 1 /* 3451 */ 2 #include 3 #include 4 #include 5 #include 6 #include...
阅读全文
摘要:BFS,考虑一球进洞仅一球滚动以及两球重叠的情况即可。 1 /* 3309 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN...
阅读全文
摘要:简单BFS。 1 /* 2579 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN 10510 11 typedef struct node_...
阅读全文
摘要:简单BFS。 1 /* 2757 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN 1005 10 11 typedef ...
阅读全文
摘要:BFS+状态压缩。 1 /* 2405 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN 216000 10 #define...
阅读全文
摘要:简单BFS。就是要把所有的D点当成一个整体考虑(整体移动)。 1 /* 2531 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN 10510...
阅读全文
摘要:状态压缩+BFS,一次AC。 1 /* 1885 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN 105 10 11 b...
阅读全文
摘要:bfs预处理一点到边界的最小距离,IDA*求出可行方案。注意按字典序初始化dir数组。并且存在中间点全为1,边界含0的可能性(wa了很多次)。此时不输出任何命令。 1 /* 1813 */ 2 #include 3 #include 4 #include 5 #include 6...
阅读全文
摘要:BFS。 1 /* 1484 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 typedef struct {11 int x, y;...
阅读全文
摘要:双向BFS+状态压缩。 1 /* 1401 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std; 10 11 st...
阅读全文
摘要:红黑树(red-black tree)是许多平衡搜索树中的一种,因此基本操作(查询、删除、搜索)等在最坏情况下的时间复杂度均为O(lgn)。13. 1红黑树的性质红黑树时一棵二叉搜索树,并且在每个结点上增加了一个属性表示颜色:红色或黑色。通过对任何一条从根到叶子的简单路径上各个结点的颜色进行约束,红...
阅读全文
摘要:状态压缩+优先级bfs。 1 /* 1818 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 #define MAXM 1...
阅读全文
摘要:Dijkstra。 1 /* 1601 */ 2 #include 3 #include 4 #include 5 6 #define INF 999999 7 8 char buf[27]; 9 int map[27][27];10 bool visit[27], valid[27];1...
阅读全文
摘要:wa了几次,至少要考虑4个方向:下、右、左下、右下。很像当年北航的机试题目。 1 /* 2699 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #...
阅读全文
摘要:状态压缩+BFS。 1 /* 3088 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN 60000 10 #define ...
阅读全文
摘要:搜索树数据结构支持多种动态集合操作,包括SEARCH、MINIMUM、MAXIMUM、PREDECESSOR、SUCCESSOR、INSRT和DELETE操作等。基本的搜索树就是一棵二叉搜索树。12.1什么是二叉搜索树1. 二叉搜索树的性质:设x是二叉搜索树中的一个结点。如果y是x左子树中的一个结点...
阅读全文
摘要:裸BFS。 1 /* 2645 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN 20010 11 typedef struct node_t...
阅读全文
摘要:bfs。 1 /* 2717 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN 10000110 11 queue Q;12 int s[MA...
阅读全文
摘要:bfs. 1 /* 2822 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN 100510 #define INF 0xffffff11 1...
阅读全文
摘要:其实就是一道搜索模拟题。因为数据量小,用char就够了。 1 /* 3295 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 typedef str...
阅读全文
摘要:简单BFS。注意最后一组数据,每个初始点不考虑周围是否有敌人。 1 /* 3345 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define ...
阅读全文
摘要:bfs+状态压缩。初始化数组的曼哈顿距离条件写错了,改了一下午。 1 /* 3442 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define...
阅读全文
摘要:注意以下数据:[] ++ [][] -- [1,2][1,2] ++ [][] ++ [1][2] ++ [][2,3] -- []结果是[][][1,2][1][2][2,3] 1 /* 3242 */ 2 #include 3 #include 4 #include 5 6 #defin...
阅读全文
摘要:水题,STL双端队列。 1 /* 2319 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 int main() {10 int n, t;11 in...
阅读全文