bzoj 3393 bzoj 1644: [Usaco2007 Oct]Obstacle Course 障碍训练课(BFS)
1644: [Usaco2007 Oct]Obstacle Course 障碍训练课
Time Limit: 5 Sec Memory Limit: 64 MB
Submit: 680 Solved: 326
[Submit][Status][Discuss]
Description
考虑一个 N x N (1 <= N <= 100)的有1个个方格组成的正方形牧场。有些方格是奶牛们不能踏上的,它们被标记为了'x'。例如下图:
. . B x .
. x x A .
. . . x .
. x . . .
. . x . .
贝茜发现自己恰好在点A处,她想去B处的盐块舔盐。缓慢而且笨拙的动物,比如奶牛,十分讨厌转弯。尽管如此,当然在必要的时候她们还是会转弯的。对于一个给定的牧场,请你计算从A到B最少的转弯次数。开始的时候,贝茜可以使面对任意一个方向。贝茜知道她一定可以到达。
Input
第 1行: 一个整数 N 行
2..N + 1: 行 i+1 有 N 个字符 ('.', 'x', 'A', 'B'),表示每个点的状态。
Output
行 1: 一个整数,最少的转弯次数。
Sample Input
Sample Output
BFS
bet[i][j][k]表示到达点(i, j)此时面向k方向的最少拐弯次数
bzoj3393和这道题一样,都是求最小拐弯次数,唯一的区别就是注意3393行和列是反的
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
typedef struct
{int x, y;int lt;
}Point;
Point now, temp;
queue<Point> q;
char str[105][105];
int bet[105][105][5], dir[4][2] = {1,0,0,1,-1,0,0,-1};
int main(void)
{int n, i, j, x, y, ans, k;scanf("%d", &n);memset(str, 'x', sizeof(str));memset(bet, 1, sizeof(bet));for(i=1;i<=n;i++){for(j=1;j<=n;j++){scanf(" %c", &str[i][j]);if(str[i][j]=='A'){bet[i][j][4] = -1;now.x = i, now.y = j;now.lt = 4;q.push(now);}if(str[i][j]=='B')x = i, y = j;}}while(q.empty()==0){now = q.front();q.pop();for(i=0;i<=3;i++){temp.x = now.x+dir[i][0];temp.y = now.y+dir[i][1];if(str[temp.x][temp.y]=='x')continue;temp.lt = i;if(temp.lt==now.lt) k = bet[now.x][now.y][now.lt];else k = bet[now.x][now.y][now.lt]+1;if(bet[temp.x][temp.y][temp.lt]>k){bet[temp.x][temp.y][temp.lt] = k;q.push(temp);}}}ans = 100000;for(i=0;i<=3;i++)ans = min(ans, bet[x][y][i]);printf("%d\n", ans);return 0;
}
/*
6
A..x.B
xx.x.x
...x..
.xxxx.
...x..
.x...x
*/
bzoj 3393 bzoj 1644: [Usaco2007 Oct]Obstacle Course 障碍训练课(BFS)相关推荐
- BZOJ-1644: [Usaco2007 Oct]Obstacle Course 障碍训练课(SPFA)
1644: [Usaco2007 Oct]Obstacle Course 障碍训练课 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 707 Solve ...
- bzoj 1643: [Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪(DP)
1643: [Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪 Time Limit: 5 Sec Memory Limit: 64 MB Submit: ...
- bzoj 2654 bzoj 3675 总结
bzoj 2654 && bzoj 3675 总结 手动博客搬家: 本文发表于20180929 15:18:55, 原地址https://blog.csdn.net/suncongbo ...
- [BZOJ1643][Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪
1643: [Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪 Time Limit: 5 Sec Memory Limit: 64 MB Submit: ...
- bzoj 3386 bzoj 3408: [Usaco2009 Oct]Heat Wave 热浪(最短路)
3408: [Usaco2009 Oct]Heat Wave 热浪 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 301 Solved: 223 [ ...
- bzoj 1627: [Usaco2007 Dec]穿越泥地(BFS)
1627: [Usaco2007 Dec]穿越泥地 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 768 Solved: 517 [Submit][S ...
- bzoj 1640 bzoj 1692: [Usaco2007 Dec]队列变换(后缀数组)
1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1756 Solved: 737 [Submit][ ...
- bzoj 1636 bzoj 1699: [Usaco2007 Jan]Balanced Lineup排队(RMQ)
1699: [Usaco2007 Jan]Balanced Lineup排队 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1514 Solved: ...
- [bzoj 2768][bzoj 1877]
传送门1 传送门1 Solution 两道比较裸的题... 复习一下最大流和费用流的模板. Code[bzoj 2768][JLOI 2010] 冠军调查 #include<bits/stdc+ ...
最新文章
- CVPR 2021 | 国防科大:基于几何稳定性分析的物体位姿估计方法
- YourEclipse—不只是Eclipse开发者社区
- JavaMail 发送邮件
- Python面向对象(一)
- SAP Data Intelligence Graph使用浏览器访问的url规范
- [TypeScript] vs code TSLint常见错误解决方案
- 基于51单片机的流水灯(C语言)
- SMBUS和i2cBus,PMBus 区别
- Xshell 6免费版
- QT自动检测系统语言代码
- VelocityTracker 使用
- 什么是高质量的代码--整理的网上博文
- 青龙羊毛——猫咪放羊(搬运)
- 记录一次docker安装遇到的坑
- java中 访问修饰符限制性最高的是,问:JAVA中,访问修饰符限制性最高的是( )。(选择一项)...
- HuggingFace Transformers框架使用教程
- Python数据分析:实时更新全国全球疫情分析
- 云服务器物理机在,一个云服务器会在两个物理机上吗
- hadoop自定义排序,分组排序
- Activiti初识