A Za, A Za, Fighting...

坚信:勤能补拙

PKU 3278 Catch That Cow

问题:
http://acm.pku.edu.cn/JudgeOnline/problem?id=3278

思路:
简单的BFS,一次AC
使用一个数组visited[MAX_NUM]来判重

代码:
 1 #define ADD(temp, cur) ++tail; \
 2             queue[tail].num = temp; \
 3             queue[tail].moves = cur+1; \
 4             visited[temp] = 1;
 5 
 6 int
 7 bfs()
 8 {
 9     int cur_num, cur_moves, temp;
10     queue[tail].num = n;
11     queue[tail].moves = 0;
12     visited[queue[tail].num] = 1;
13     while(head <= tail) {
14         ++head;
15         cur_num = queue[head].num;
16         cur_moves = queue[head].moves;
17         if(cur_num == k)
18             return cur_moves;
19         temp = cur_num - 1;
20         if(temp>=0 && temp<MAX_NUM && !visited[temp]) {
21             ADD(temp, cur_moves);
22         }
23         temp = cur_num + 1;
24         if(temp>=0 && temp<MAX_NUM && !visited[temp]) {
25             ADD(temp, cur_moves);
26         }
27         temp = cur_num<<1;
28         if(temp>=0 && temp<MAX_NUM && !visited[temp]) {
29             ADD(temp, cur_moves);
30         }
31     }
32 }

posted on 2010-07-25 21:06 simplyzhao 阅读(252) 评论(0)  编辑 收藏 引用 所属分类: B_搜索


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2010年9月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜