
搜索
qte_acm
这个作者很懒,什么都没留下…
展开
-
poj 1724
这是一题简单的搜索问题 , 可我就是w+t了10多次 。一开始用的是vector来存储图(因为有重边) , 结果一直超时还加了优化 , 用邻接表之后 , 不加优化还过来 , 诶 , 直接代码, 以后凡是图都用邻接表存储吧 。优化: 可以求出终点到其他点的最短距离 和 最少花费 , 这个可以把图反过来求 。优化之后只要 98ms , 好像有个astar算法 , 可以0ms过 , 不知道原创 2013-12-14 20:04:13 · 661 阅读 · 0 评论 -
poj 2531
这题的大概意思是:把一个图中的所有顶点划分在两个集合里, 然后求两个集合中点与点权值和的最大值。这题如果从搜索的角度来解的话 , 就用深搜 ,剪枝点在于:对称点剪枝 。//329ms#includeconst int MAX_NODES = 20;int node_num = 0;int max_traffic, choose_num, un_choose_num;int c原创 2013-12-14 20:02:21 · 570 阅读 · 0 评论 -
uva 10047
这是一道复合状态的迷宫搜索题 。对vis数组的理解: 以前一直以为这只是一个标记每个点事否走过的数组 , 其实这只是片面的认识 , 它标记的不是一个点 ,而是一个“状态” , 状态和点是不一样的 , 点是单一的 , 而状态不只是表示一个点 , 更是表示这个点所处在的状态 。这个题要把方向 , 颜色 , 点 ,一起看成一个综合的状态 , 那就意味着要定义一个四维数组 。用bfs有两种方法原创 2013-12-14 20:02:40 · 597 阅读 · 0 评论 -
poj 2251
题目是要求求三维两点之间的最短路径 。一开始用的是bfs , 结果不管这么剪枝 , 还是超时。用bfs之后 ,马上就过了 。在这种情况下, bfs只需要记录各个最后走过那个点的位置, 没有必要记录所有走过的点。 凡是求最短路径的一般都只能用bfs , 切记!!! //46ms#include #include int maze[100][100][100];int v原创 2013-12-14 20:02:18 · 508 阅读 · 0 评论 -
hdu 1026 简单的bfs
题目:给出一个n*m的图 , 求从(0,0)到(n-1 , m-1) 花的最少时间 , 在这个图中走过一个格子要1sX : 表示这个位置不能过. : 表示这个位子能过n(n是1——9的数字) : 表示这个有个怪物 , 要从这里过必须把他打死 , 打死他要花ns并且要把路径输出这题的关键也是在于怎么来标记 , 这个点已经走过 , 或则以前走过的点 , 后面能不能再走?这里我们有一原创 2013-12-14 20:04:56 · 603 阅读 · 0 评论 -
poj 1465 一题非常经典的bfs题
题意:给出一个数n , 和m个不相同的个位数 , 存在一个数x .1、 x%n == 02、 x中的每个数字都能在那m个数字钟找到 ,求出最小的x这题的关键在于1、剪枝:a = x*n + cb = y*n + c这两个数只要存在一个就行 , 由于是bfs进行搜索 , 所以每次得到的数都是最小的 , 因此只要用一个数来标记余数 ,这就是余数剪枝2、大数处理这题的最后得到的原创 2013-12-14 20:04:58 · 850 阅读 · 0 评论 -
hdu1728 很有难度的bfs…
题意:给定一个m × n (m行,n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有些地方是障碍,她必须绕行,从迷宫的一个位置,只能走到与它相邻的4个位置中,当然在行走过程中,gloria不能走到迷宫外面去。令人头痛的是,gloria是个没什么方向感的人,因此,她在行走过程中,不能转太多弯了,否则她会晕倒的。我原创 2013-12-14 20:04:53 · 682 阅读 · 0 评论 -
2013蓝桥杯软件设计大赛 c/c++ B组第8题
2013蓝桥杯原创 2014-03-17 21:02:55 · 1143 阅读 · 0 评论