广搜简单题
来源:互联网 发布:java socket 文件传输 编辑:程序博客网 时间:2024/05/17 04:18
Catch That Cow
题目传送:POJ - 3278 - Catch That Cow
题解:点击即传送
迷宫问题
题目传送:POJ - 3984 - 迷宫问题
DFS也可以,见另一个题解
AC代码(BFS):
#include <map>#include <set>#include <cmath>#include <deque>#include <queue>#include <stack>#include <cstdio>#include <cctype>#include <string>#include <vector>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>#define LL long long#define INF 0x7fffffffusing namespace std;const int dx[] = {-1, 0, 1, 0};const int dy[] = {0, 1, 0, -1};int front, rear;struct node { int x, y, pre;}q[105];int mp[5][5];int vis[5][5];void print(int x) { if(q[x].pre != -1) { print(q[x].pre); printf("(%d, %d)\n", q[x].x, q[x].y); }}void bfs(int x, int y) { front = 0; rear = 1; q[front].x = x; q[front].y = y; q[front].pre = -1; vis[x][y] = 1; while(front < rear) { for(int i = 0; i < 4; i ++) { int xx = q[front].x + dx[i]; int yy = q[front].y + dy[i]; if(xx >= 0 && xx < 5 && yy >= 0 && yy < 5 && mp[xx][yy] != 1 && !vis[xx][yy]) { vis[xx][yy] = 1; q[rear].x = xx; q[rear].y = yy; q[rear].pre = front; rear ++; } if(xx == 4 && yy == 4) { print(front); return; } } front ++;//出队 }}int main() { memset(vis, 0, sizeof(vis)); for(int i = 0; i< 5; i ++) { for(int j = 0; j < 5; j ++) { scanf("%d", &mp[i][j]); } } printf("(0, 0)\n"); bfs(0, 0); printf("(4, 4)\n"); return 0;}
0 0
- 广搜简单题
- hdu2717 简单广搜
- POJ1376简单广搜
- 简单广搜:Nightmare
- hdu2612 简单两次广搜
- POJ 3278 简单广搜
- POJ1426(简单广搜)
- POJ 3278(简单广搜)
- 简单广搜:Knight Moves
- Dice (简单广搜)
- 深搜和广搜简单对比
- poj 3278 简单的广搜入门
- UVA 439 Knight Moves 简单广搜
- 马踏棋盘(简单广搜)
- poj 1164 简单地广搜
- 广搜的简单应用1015
- PAT - 肿瘤诊断 - 三维简单广搜
- POJ 3278 抓牛简单广搜
- Dom4J qname
- POJ 2362:Square 觉得这才算深度搜索
- mysql自动定时备份数据库的最佳方法-支持windows系统
- oracle 上线时提交sql 写法注意事项20150731
- 分球问题(DP/C++)
- 广搜简单题
- LAMP环境的搭建(ubuntu)
- ubuntu系统R语言安装 XML包
- 分享一个用于统计MATLAB代码行数的小程序
- poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111
- Leetcode #238 Product of Array Except Self
- C++ Virtual详解
- JavaScript基础 (函数的声明,回调函数,a = a || null;,闭包)
- HDOJ 找新朋友 1286【欧拉函数】