随笔分类 -  搜索

BFS,DFS,记忆化搜索,A*搜索
摘要:三维的BFS简单搜索,TLE了2次,边界问题少了dz的情况,还有注意简单的剪枝,像p.step>=time的情况就得剪去。学会发散思维,学了二维BFS就要想到三维的又该怎么去写。 1 #include<iostream> 2 #include<queue> 3 #include<cstring> 4 using namespace std; 5 6 int map[51][51][51]; 7 int m[51][51][51]; 8 int dir[6][3]={{1,0,0},{-1,0,0},{0,1,0},{0,-1,0},{0,0,1},{0 阅读全文
posted @ 2012-02-18 20:46 hankers 阅读(264) 评论(0) 推荐(0)
摘要:此题大意讲的是从起点到终点,要求若从A到B,则需保证A到终点的时间比B到终点时间要长。由于有此要求,必然想到动态规划记录其最短路线的状态,但传统动态规划却解决不了。故采用记忆化搜索,记忆化搜索=搜索形式+动态规划思想 1 #include<iostream> 2 #include<cstring> 3 #include<queue> 4 using namespace std; 5 int map[51][51],m[51][51]; 6 __int64 s[51][51]; 7 int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1 阅读全文
posted @ 2012-02-18 16:33 hankers 阅读(1002) 评论(0) 推荐(0)
摘要:此题大意讲的是只能走黑砖,求他所能走的黑砖个数。这题让我很郁闷,写完了结果各种不对,最后才调试出原来我把行列的数搞反了,千万要细心!还有p=que.front();que.pop();这段代码只能放在循环内的前面,如若置于后面则还没有搜索完全就很容易跳出。 1 #include<iostream> 2 #include<queue> 3 #include<cstring> 4 using namespace std; 5 6 char map[21][21]; 7 int m[21][21]; 8 int dir[4][2]={{1,0},{-1,0},{0 阅读全文
posted @ 2012-02-18 10:30 hankers 阅读(269) 评论(0) 推荐(0)
摘要:这题就是简单的BFS搜索,刚刚转到C++,还有很多库函数不熟悉,理解到BFS是一种奇妙的迭代法,其用的主要是队列的性质。 1 /*BFS简单搜索*/ 2 #include<iostream> 3 #include<queue> 4 #include<cstring> 5 6 using namespace std; 7 8 int map[8][8];//标记数组 9 int dir[8][2]={{-2,-1},{-1,-2},{1,-2},{2,-1},{2,1},{1,2},{-1,2},{-2,1}};10 11 struct point12 {13 阅读全文
posted @ 2012-02-16 23:18 hankers 阅读(219) 评论(0) 推荐(0)
摘要:HDU 1025 ——LIS算法题目: Constructing Roads In JGShining's Kingdom Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6810 Acce... 阅读全文
posted @ 2012-02-07 10:02 hankers 阅读(1759) 评论(0) 推荐(0)
摘要:HDU 1010 --DFS第二炮题目: Tempter of the Bone time Limit: 2000/100... 阅读全文
posted @ 2012-01-26 18:54 hankers 阅读(248) 评论(0) 推荐(0)
摘要:HDU 1016 --DFS第一炮题目: Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ... 阅读全文
posted @ 2012-01-25 11:49 hankers 阅读(191) 评论(0) 推荐(0)