
搜索
lhfl911
这个作者很懒,什么都没留下…
展开
-
hdu 3345 War Chess【bfs+优先级队列or状态标记】
思路: 问能到达那些位置,第一想到的就是广搜,问题是怎么搜。 1. 第一种, 普通队列因为可能多次到达某一点而体力状况不同,不能直接就用vis描述走过和没走过,从而想到用vis表示走过当前点的最大体力,搜索时与其进行比较,比它大时再push。 2. 第二种, 用优先级队列每次选取走过点中体力剩余体力最大的点更新,可以避免重复的情况,并且效率更高。优先级队列代码#include <cstdio原创 2016-04-29 19:37:59 · 442 阅读 · 0 评论 -
hdu1728 逃离迷宫 --bfs
题目链接:hdu1728还是bfs走迷宫, 但不再是求最短路,而是问能不能在k次转向内从出发点走到目标点.初始方向不计入次数,可以直接把四个方向全push 队列节点的次数都限制在k次以内,大于k就不用push了#include <cstdio>#include <cstring>#include <queue>#include <algorithm>using namespace st原创 2016-12-11 11:27:38 · 336 阅读 · 0 评论 -
hdu1180 诡异的楼梯 --bfs+优先级队列
遇到楼梯特殊处理#include <cstdio>#include <cstring>#include <queue>#include <algorithm>using namespace std;struct node { int x, y, t; node() {} node(int xx, int yy, int tt):x(xx), y(yy), t(tt)原创 2016-12-11 14:38:18 · 262 阅读 · 0 评论 -
1021 Deepest Root --dfs
先判断是不是树,并查集和深搜都可以 求树的直径,两遍搜索,答案为其合集。#include <cstdio>#include <cstring>#include <vector>#include <set>#include <algorithm>using namespace std;const int MAXN = 10010;vector<int> mp[MAXN];bool vis原创 2016-12-04 15:09:43 · 224 阅读 · 0 评论