正题


题目大意

一个迷宫,有许多出口,求一个点到最近的出口最远。


解题思路

直接bfs暴力搜索,然后保存上次的答案


code

// luogu-judger-enable-o2
#include<cstdio>
#include<queue>
#include<cstring>
#define N 210
using namespace std;
struct node{int x,y;
};
const int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
int a[N][N],w,h,maxs;
char map[N][N];
queue<node> q;
void bfs(int xs,int ys)//搜索
{q.push((node){xs,ys});a[xs][ys]=0;while(!q.empty()){node x=q.front();q.pop();int ws=a[x.x][x.y];for(int i=0;i<4;i++) {int xx=dx[i]+x.x,yy=dy[i]+x.y;int zx=dx[i]*2+x.x,zy=dy[i]*2+x.y;if(zx<=h&&zx>0&&zy<=w&&zy>0&&map[xx][yy]==' '&&a[zx][zy]>ws+1){q.push((node){zx,zy});a[zx][zy]=ws+1;}}}
}
int main()
{memset(a,127/3,sizeof(a));scanf("%d%d",&w,&h);w=w*2+1;h=h*2+1;for(int i=0;i<=h;i++){gets(map[i]+1);for(int j=1;j<=w;j++)if(map[i][j]=='-'||map[i][j]=='+'||map[i][j]=='|')map[i][j]='+';else map[i][j]==' ';}for(int i=1;i<=h;i++){if(map[i][1]==' ')bfs(i,2);if(map[i][w]==' ')bfs(i,w-1);}for(int i=1;i<=w;i++){if(map[1][i]==' ')bfs(2,i);if(map[h][i]==' ')bfs(h-1,i);}for(int i=1;i<=h;i++)//{for(int j=1;j<=w;j++)//{if(a[i][j]<707406378)maxs=max(maxs,a[i][j]);//printf("%5d",a[i][j]);//else printf("%5d",100);//}printf("\n");}printf("%d",maxs+1);
}

USACO2.4のP1519-穿越栅栏(Overfencing)【bfs】相关推荐

  1. luogu P1519 穿越栅栏 Overfencing

    题目描述 描述 农夫John在外面的田野上搭建了一个巨大的用栅栏围成的迷宫.幸运的是,他在迷宫的边界上留出了两段栅栏作为迷宫的出口.更幸运的是,他所建造的迷宫是一个"完美的"迷宫: ...

  2. 穿越栅栏 Overfencing

    https://www.luogu.org/problemnew/show/P1519 题解:二进制状态压缩+BFS 注意:洛谷上数据以'\r\n'结尾,并非'\n' /* *@Author: STZ ...

  3. usaco Overfencing 穿越栅栏(BFS)

    Overfencing 穿越栅栏 农夫 John 在外面的田野上搭建了一个巨大的用栅栏围成的迷宫.幸运的是,他在迷宫的边界上留出 了两段栅栏作为迷宫的出口.更幸运的是,他所建造的迷宫是一个" ...

  4. [Usaco2007 Dec]穿越泥地[bfs][水]

    Description 清早6:00,Farmer John就离开了他的屋子,开始了他的例行工作:为贝茜挤奶.前一天晚上,整个农场刚经受过一场瓢泼大雨的洗礼,于是不难想见,FJ 现在面对的是一大片泥泞 ...

  5. 洛谷P2181答案C语言,洛谷P2181 对角线(组合数)

    题目描述 对于一个N个定点的凸多边形,他的任何三条对角线都不会交于一点.请求楚图形中对角线交点的个数. 例如,6边形: 输入输出格式 输入格式: 第一行一个n,代表边数. 输出格式: 第一行输出交点数 ...

  6. 【读书】马克·李维《自由的孩子》摘录

    没有任何的牢笼可禁锢我的思想,所有的情愫都可以穿越栅栏飞向远方. --马克·李维 <自由的孩子> 这是马克·李维的<自由的孩子>中让我感触最深的话,这场青春的挽歌,关乎友情.关 ...

  7. 《the cave》攻略及感悟

    <the cave>这款游戏是一个智力解谜游戏,寒假太无聊,又不想刷题,于是把这个游戏给通关了,哈哈. 我玩的是汉化版的,里面的英语基本上不到1/3吧,贴个链接吧:<the cave ...

  8. [蓝桥杯2015决赛]穿越雷区-bfs

    题目描述 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废. 某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短? ...

  9. 蓝桥杯 穿越雷区(bfs)

    题目描述 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废. 某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短? ...

最新文章

  1. oc-29-可变数组
  2. 玩转数据结构从入门到进阶五
  3. mongodb数据库扩展名_MongoDB学习笔记:MongoDB 数据库的命名、设计规范
  4. 世纪联华的 Serverless 之路
  5. matlab函数冒号代表的意思,MATLAB中冒号运算符的含义
  6. 中国古代杰出的科学家
  7. vue element table 相关页面跳转实例代码
  8. 简述环状引用问题及其解决方案
  9. 交换机VLAN 模式trunk和access 区别
  10. 如何将html放到虚拟主机上
  11. python urlencode函数_Python urlencode和unquote函数使用实例解析
  12. 乾隆盛世,居然是“饥饿的盛世”?
  13. 当你使用笔记本电脑插入公司的局域网后你的wifi功能无法上网了,而且公司局域网没有外网,怎么既可以进公司局域网又可以上外网
  14. PAT 1051 复数乘法
  15. 【VUE】【高德地图】如何隐藏(去除)高德地图api左下角logo
  16. 土壤湿度使用详细教程(基于树莓派3b+)
  17. centos 硬盘挂载
  18. 最优化建模算法理论之Goldstein准则(数学原理及MATLAB实现)
  19. 基于OHCI的USB主机 —— UFI读状态代码
  20. Python的几句经典口号

热门文章

  1. 我已经把它摸的透透的了!!!Spring 动态数据源设计实践,全面解析
  2. oracle 有计划任务吗,oracle计划任务的问题
  3. php年月日滚动选择,Unity3d—做一个年月日选择器(Scroll Rect拖动效果优化)— 无限滚动 + 锁定元素...
  4. 算法与数据结构——并查集
  5. 算法题目——最长连续序列
  6. 计算机检测维修与数据恢复课件,2017年全国职业院校技能大赛中职组“计算机检测维修与数据恢复”赛项说明会ppt课件.ppt...
  7. pe下找不到ssd硬盘_【进入pe系统后认不到硬盘解决方法】进入pe系统看不到硬盘_pe系统不认硬盘...
  8. C++ vector容器中用erase函数和迭代器删除重复元素问题分析
  9. C++实现AOE网中的关键路径算法(邻接表存储)
  10. C++ class实现邻接矩阵存储的图(完整代码)