搜索
paul08colin
这个作者很懒,什么都没留下…
展开
-
POJ 1426 随机深搜
从1开始后面补0,或1,不断搜下去,直到搜到结果为止。相当于模拟除法的过程。 DFS,BFS均可,由于我用DFS,防止出现极端情况(比如10000000000000000000000000),于是就让深搜方向随机选择,就可防止这种情况出现。不过,不知为什么G++提交老runtime error。 剪枝的方法(如果随机DFS,剪枝效率不明显):模拟除法过程,如果余数出现相同就不再搜下去了。原创 2011-11-26 21:55:28 · 278 阅读 · 0 评论 -
POJ 2688 TSP问题
经典TSP问题先广搜求所有"dirty“点之前的距离,然后再DFS寻找所有组合(穷举法),最后取最短即为所求 #include #include #include #include using namespace std; #define MAXN 30 struct cnode { int x; int y; int MapToPoint;// the in原创 2011-12-16 21:30:46 · 1178 阅读 · 0 评论 -
POJ 2676 数独
题目: http://poj.org/problem?id=2676 题意就是打印一个数独的其中一个答案 暴力DFS,用位运算保存行,列,3×3的状态,程序跑了800多ms #include #include #define MAXN 9 #define true 1 #define false 0 inline int CellPos(int i, int j)//求所原创 2012-01-16 23:03:00 · 643 阅读 · 0 评论 -
poj1376 搜索(BFS)
题目: http://poj.org/problem?id=1376 题意: 可以给机器人发两种指令:(1) GO: 一次朝一个方向移动1或2或3步 (2) TRUE: 转左或转右(一次只能转90度,不能连转两次) 。 每次执行1个指令都要花1秒。而且边界不能走。 思路: 用BFS,有三维数组保存状态,代表到达当前位置(x,y)在z方向上花的秒数(权重), 比较权重。比之前的状态权重小的,则原创 2012-02-29 21:08:37 · 388 阅读 · 0 评论