- 博客(6)
- 收藏
- 关注
原创 hdu 1518 Square (DFS)
题意: 有一些木棍n个(大于等于4小于等于20),组成一个正方形(木棍全用完),是否能组成? 想法: 刚开始想的是四条边一起找,超时,最后看了别人的,每次找一条边+剪枝(每条边必须小于等于sum/4,sum为偶数),每次找时都从下一条木棍开始,最大的木棍小于等于sum/4; 代码实现: #include #include #
2012-06-12 12:04:13 366
原创 poj 3322 Bloxorz I (BFS)
题意: 有一1*2大小的木块(直立时可看作是1*1)在n*m的矩形上滚动,求到达目的(只能是直立的)最小步骤; 其中 *代表木板,#代表空地,X代表初始位置,E代表有损坏的木板(不能直立在上面),O代表目的地;刚 开始是木块可以直立或竖放; 想法: 刚开始是认为只有两种状态,一直wrong,看了别人的才知道想错了,是3中状态(直立,横放,竖放),则 找到Move[
2012-06-07 15:33:09 386
原创 hdu 1254 推箱子(BFS+BFS或BFS+DFS)
题意: 想法: 先用BFS将箱子向前推,在每次推箱子前有BFS或DFS判断人是否能到达箱子后面; 代码实现: 一 BFS+BFS实现:(时间:0ms) #include #include #include #include using namespace std; const int MAX=9; int n,m,Map[M
2012-06-07 10:18:24 361
原创 poj 2688 Cleaning Robot BFS+DFS(TSP问题)
题意: 有一个W*H的房间有一个机器人,一些垃圾(小于等于10)和家具(不能移动或经过),问机器人清理所有的垃圾所用的最小时间,诺有垃圾不能清理输出-1; 想法: 先用BFS求出各点之间的最小步数建图,然后用DFS(由于图的点数小于12所以可用)求最短路;(刚开始想只用BFS,从机器人的点找到最近的垃圾点然后再找下一个于此时最近的垃圾点直到找完或不能找,但每次局部的最优不能
2012-06-06 21:09:44 704 1
原创 poj 1376 Robot BFS
简单的BFS: 题意:一个机器人从起点到终点有的时间,其中按几种命令走,命令有:向左或向右转,向前走时可以走{1,2,3}三种步骤走每次命令消耗1秒,其中如图,机器人在每格的左上角; 想法:这个题最关键是如何保存图按图将横竖都扩大一,保存每个方格的四个定点:若Map[i][j]==1则Map[i][j-1]=1; Map[i-1][j]=1; Map[i-1][j-1]=1;(由于机器人有
2012-06-06 20:43:36 613
原创 贪心算法
一 对贪心算法的理解 · 贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结 果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。在动态规划算法中,每步所作的选择往往依赖于相关子问题的解。因而只有在解出相关子问题后,才能作出选择。而在贪心算法中
2012-06-06 20:06:26 354
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人