来自风平浪静的明天
【题目描述】
冬眠了五年,光终于从梦中醒来。
千咲、要,大家都在。
隐约记得“昨天”的海船祭,爱花意外成为贡女,沉入海底。
海面冰封,却有丝丝暖流在冰面之下涌动。
此时,爱花沉睡在祭海女神的墓地。她的胞衣在一点点脱落,化作一簇簇暖流,夹杂着她的感情,向海面上涌去。
爱花,你在哪里?
五年之后,纺已经成为海洋学研究科的大学生。
在纺的帮助下,光得知了海面下海流的情况。
纺告诉光,暖流一旦产生,就会不断地向四周扩散,直到遇到海中的岩石。
红腹海牛,快告诉光,爱花在哪里。
纺帮你绘制了一张海流情况图,长度为N,宽度为M。
海很大,一边有沙滩,一边一望无际,但长度和宽度都不会超过300。沙滩是金黄色的,所以用Y表示。海是蓝色的,所以用B表示。暖流很暖和,所以用H表示
海中有大大小小的石头。石头很危险,所以用X表示
光相信自己一定能找到爱花(爱花的位置只有一种可能)
【输入格式】
第一行包括两个整数N,M。
接下来N行,每行M个字符。
【输出格式】
仅一行,表示爱花的位置(如果你无能为力,请输出 -1 ,只要你尽力,光不会责怪你)
【样例输入】
5 5
YYYHB
YYHHH
YHHXB
BBHBB
BBBBB
【样例输出】
2 3
【数据范围】
对于30%的数据,n,m<=10
对于70%的数据,n,m<=100
对于100%的数据,n,m<=300
【样例解释】
在(2,3)出现第一个H后,经过3s后,出现样例输入的地图。
P.S. Mushroom拜托他GF出的这题= =

Solution:

对于每一个H点进行枚举。进行BFS扩展。扩展中遇见除了H以外的B区域则说明H点不是目标点。

这样的复杂度最差是n^n^n^n;

实际上 H点没有 n^n这么多。 而且BFS扩展中很容易扩展到B区域然后弹掉。

不知道为什么。这道题的数据很水。

因为判断H是目标点的条件是 num_bfs_H=tot_H

但是实际上 达到条件之后不能马上弹出check的过程

因为可能在满足上诉条件之后,还有1--3个方向中,存在B  显然弹出的情况是错误的。

然而我并没有管这个。实际上应该在num_bfs_H=tot_H而且当前层数的点全部BFS完之后,如果没有一个点扩展到B节点,才能判断枚举的H起始点合法。

吐槽一下出题人。。而且X“危险的时候”并没有什么卵用!!!这直接导致我BFS挂掉。

以下是代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<queue>
using namespace std;
int move_x[5]={-1,1,0,0};
int move_y[5]={0,0,-1,1};
int m,n,flag=0,tot;
int x_t[10000],y_t[10000];
int vis[301][301];
char g[301][301];
char ch[305];
int BFS (int sx,int sy)
{
queue<int> q;
int cnt=0,num=1;
memset(x_t,0,sizeof(x_t));
memset(y_t,0,sizeof(y_t));
memset(vis,0,sizeof(vis));
q.push(++cnt);x_t[cnt]=sx;y_t[cnt]=sy;vis[sx][sy]=1;
while(!q.empty()){
int k=q.front();q.pop();
int x=x_t[k],y=y_t[k];
for (int i=0;i<=3;i++){
int x_n=x+move_x[i];
int y_n=y+move_y[i];
if(x_n<=m&&x_n>0&&y_n>0&&y_n<=m&&g[x_n][y_n]!='Y'&&g[x_n][y_n]!='X'&&vis[x_n][y_n]==0){
if(g[x_n][y_n]=='H')
{
num++;
vis[x_n][y_n]=1;
q.push(++cnt);
x_t[cnt]=x_n;y_t[cnt]=y_n;
if(num==tot)
return 1;
}
else return 0;
}
}
}
}
int main()
{
freopen("calm.in","r",stdin);
freopen("calm.out","w",stdout);
scanf("%d%d",&n,&m);
for (int i=1;i<=n;i++){
scanf("%s",ch+1);
for (int j=1;j<=m;j++){
g[i][j]=ch[j];
if(ch[j]=='H')
tot++;
}
}
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
if(g[i][j]=='H')
if(BFS(i,j)){
cout<<i<<' '<<j;
return 0;
}
cout<<"-1";
}

【搜索】 来自风平浪静的明天相关推荐

  1. NOIP模拟题——来自风平浪静的明天

    [题目描述] 冬眠了五年,光终于从梦中醒来. 千咲.要,大家都在. 隐约记得"昨天"的海船祭,爱花意外成为贡女,沉入海底. 海面冰封,却有丝丝暖流在冰面之下涌动. 此时,爱花沉睡在 ...

  2. 论随机数AC大法(1)

    本人蒟蒻!! 所以只能靠随机数这种我自己都不知道从哪儿学来的黑科技乱做题,做题一年多后,颇有体会(WA遍各大OJ),所以特此写下此博客,纪念我OI历程,并向广大OIer们介绍一种玄学-- 真的能AC吗 ...

  3. HTML_03_列表

    HTML 样式- CSS CSS(Cascading Style Sheet)可译为"层叠样式表"或"级联样式表", 它定义如何显示 HTML 元素,用于控制W ...

  4. 技术宅记录下看过的番

    2019年4月 <满脑都是OO的我没办法谈恋爱>擦边球 <川流少女>不善言辞的妹子写字对话的恋爱番 <一个人OO的日子>萌番,讲女主为了完成和姬友的约定交朋友的番 ...

  5. 2019.10 全世界评分最高动画TOP100

    2019.10 全世界评分最高动画TOP100: 100.朝花夕誓--约定之花 99.樱花庄的宠物女孩 98.王牌投手 振臂高挥 97.幼女战记 96.花开伊吕波 95.我的青春恋爱物语果然有问题 9 ...

  6. Nature子刊:来自人类肠道菌群的189,680种DNA病毒基因组集

    翻译:周之超@UW-Madison 来自人类肠道菌群的 189,680 种 DNA 病毒的宏基因组汇编 Metagenomic compendium of 189,680 DNA viruses fr ...

  7. 百度搜索结果URL参数含义解析

    百度搜索结果地址参数(URL参数)含义解析.阅读本文之前,如果对Urlencode有过了解,则会比较轻松. 在百度中搜索 " 博客园 " http://www.baidu.com/ ...

  8. Qt quick 示例:推特搜索小程序开发

    Qt是一个跨平台框架,通常用作图形工具包,它不仅创建CLI应用程序中非常有用.而且它也可以在三种主要的台式机操作系统以及移动操作系统(如Symbian,Nokia Belle,Meego Harmat ...

  9. 搜索大全——实用搜索引擎

    搜索大全--实用搜索引擎 学术及参考 通过下列搜索引擎你可以发现可靠而权威的网址来帮助你完成家庭作用和课程设计. Librarian's Internet Index: 该网站提供包括媒体.法律.交际 ...

最新文章

  1. 降维打击:这款GAN可以让真人「二次元化」
  2. vs2010 qt中文乱码 最终版
  3. 安装 | Windows 10下基于Anaconda平台的TensorFlow详细安装步骤
  4. 【SQL Join】两个字段关联到同一个表,如何使用left join
  5. android 资源文件获取啥退,重拾Android之路之获得各种资源文件的方法
  6. 小白设计模式:装饰者模式
  7. 第二次冲刺阶段第三天
  8. ⌈洛谷1505⌋⌈BZOJ2157⌋⌈国家集训队⌋旅游【树链剖分】
  9. Oracle 客户端安装 + pl/sql工具安装配置
  10. android 长时间 build,Gradle(Android Studio)构build时间非常长
  11. php是什么电器元件,第三代计算机采用的主要电子元器件是什么
  12. python的前端和后端_python是前端还是后端
  13. 计算机和信息系统安全保密管理规定,信息系统安全和保密管理制度
  14. qgridlayout 滚动时固定第一行_滚动轴承组合设计应考虑的问题
  15. 米思齐(Mixly)图形化系列教程(一)-Mixly软件安装及界面功能介绍
  16. mysql程序设计考试app_MySQL数据库设计与应用知到APP期末考试完整答案
  17. 中国云计算行业研究报告
  18. 使用libjpeg处理图像(libjpeg的使用压缩与解压缩jpg格式)
  19. Java开发必学:java核心技术电子书资源
  20. mysql数据库数据恢复

热门文章

  1. 视频捕获软件开发完全教学
  2. 谷歌Bard_VS_Baize-7B_VS_文心一言体验对比
  3. 【2次元娱乐】paiza迷你编程游戏《工程师也要谈恋爱》漫画全汉化
  4. 给me打打气(python语言)
  5. 给大家推荐一款小巧简单功能齐全的截屏录屏软件--FSCapture
  6. melogin.cn主页登录_melogin.cn登录入口
  7. 【无标题】12.1..ap
  8. 无聊的圣诞节 无聊的周末 无聊的僵尸III
  9. Selenium-Webdriver系列教程(一)————快速开始
  10. 玩转华为ENSP模拟器系列 | 配置BFD for OSPF特性示例