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