【搜索】L国的战斗之伞兵
伞兵?SB?嘿嘿嘿
原题传送门
思路
这道题需要采用倒退的思想。
如果a[x][y]无风或可吹至无风区:
那么它南面如果是北风区,则北风区就也是无风或可吹至无风区(实际上就是可吹至无风区)。
那么它北面如果是南风区,则北南区就也是无风或可吹至无风区(实际上就是可吹至无风区)。
那么它东面如果是西风区,则北西区就也是无风或可吹至无风区(实际上就是可吹至无风区)。
那么它西面如果是东风区,则北东区就也是无风或可吹至无风区(实际上就是可吹至无风区)。
然后从发现是无风或可吹至无风区继续推下去,若没有则返回上一步,查看下一个可能。
这是什么思路呢?对了,这就是明显的深搜。
将无风或可吹至无风区称为安全区。
搜索安全区附近的每一个附近区域,若为安全区则继续搜索,最后统计安全区的个数即可。
另外,搜索本身会超出数组范围一格,因此要在地图四周空出一圈,我采用的方式是从数组下标1开始使用,数组尾下标多开一位。
接下来就是毫无难度的水代码了
Code
#include<iostream>
#include<cstdio>
using namespace std;
char a[1002][1002];
int n,m,ans,b[1002][1002];
void find(int i,int j) //推路径
{
b[i][j]=true; //将这点记为true
if(a[i+1][j]=='u') find(i+1,j);
if(a[i-1][j]=='d') find(i-1,j);
if(a[i][j+1]=='l') find(i,j+1);
if(a[i][j-1]=='r') find(i,j-1);
}
int main()
{
//初始化
//读入
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
//装叉走起
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(a[i][j]=='o')
find(i,j);
//输出
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(b[i][j])
ans++;
cout<<ans;
return 0;
}
【搜索】L国的战斗之伞兵的更多相关文章
- 洛谷 P1913 L国的战斗之伞兵
P1913 L国的战斗之伞兵 题目背景 L国即将与I国发动战争!! 题目描述 为了在敌国渗透作战,指挥官决定:派出伞兵前往敌国!然而敌国的风十分强烈,能让伞兵在同一高度不停转悠,直到被刮到一个无风区… ...
- P1913 L国的战斗之伞兵
题目链接 P1913 L国的战斗之伞兵 思路 从无风点倒着dfs,本来是道大水题,结果输入的时候第二层循环打错了!手残打成i++ 代码 #include<iostream> #includ ...
- P1913 L国的战斗之伞兵(广搜BFS)
就是在输入的时候把 ‘o’ 的放在队里,然后,直接BFS就可以了.感觉是水题. #include<iostream> #include<queue> using namespa ...
- 洛谷 P1911 L国的战斗之排兵布阵
P1911 L国的战斗之排兵布阵 题目背景 L国即将与I国发动战争!! 题目描述 L国的指挥官想让他的每一个军营都呈现出国徽形——“L”形(方向无所谓).当然,他的指挥营除外(这叫做个性),他想不出该 ...
- P1910 L国的战斗之间谍
P1910 L国的战斗之间谍 题目背景 L国即将与I国发动战争!! 题目描述 俗话说的好:“知己知彼,百战不殆”.L国的指挥官想派出间谍前往I国,于是,选人工作就落到了你身上. 你现在有N个人选,每个 ...
- P2129 L国的战斗续之多路出击
题目描述 这一次,L国决定军队分成n组,分布在各地,若以L国为原点,可以看作在一个直角坐标系内.但是他们都受统一的指挥,指令部共发出m个命令.命令有移动.上下转移和左右转移(瞬移??),但是由于某些奇 ...
- AC日记——L国的战斗之间谍 洛谷 P1916
题目背景 L国即将与I国发动战争!! 题目描述 俗话说的好:“知己知彼,百战不殆”.L国的指挥官想派出间谍前往I国,于是,选人工作就落到了你身上. 你现在有N个人选,每个人都有这样一些数据:A(能得到 ...
- 洛谷 P1910 L国的战斗之间谍(水题日常)
题目背景 L国即将与I国发动战争!! 题目描述 俗话说的好:“知己知彼,百战不殆”.L国的指挥官想派出间谍前往I国,于是,选人工作就落到了你身上. 你现在有N个人选,每个人都有这样一些数据:A(能得到 ...
- 洛谷 P2129 L国的战斗续之多路出击(模拟)
P2129 L国的战斗续之多路出击 题目背景 广而告之:背景见其他L国的战斗!!大家一起刷 题目描述 这一次,L国决定军队分成n组,分布在各地,若以L国为原点,可以看作在一个直角坐标系内.但是他们都受 ...
随机推荐
- JVM内存溢出分析java.lang.OutOfMemoryError: Java heap space
JVM内存溢出查询java.lang.OutOfMemoryError: Java heap space查出具体原因分为几个预备步骤 1.在运行java程序是必须设置jvm -XX:+HeapDump ...
- date——系统时间的命令
这是一个可以用各种姿势获得各种时间的命令.最近在写自动化定时脚本时学了一下. 参考:https://www.cnblogs.com/ginvip/p/6357378.html 比如: 利用cronta ...
- Autoware 培训笔记 No. 2——基于点云的定位
1. 前言 构建出地图后,应该测试点云地图定位效果,这里用到ndt的scan_matching方法,这是一种scan-to-map方法.这里用的是我们自己采集的数据进行仿真. 本章内容有和No. 1重 ...
- Javascript 实现倒计时效果
代码来自于网上. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...
- Entity Framework 6 中如何获取 EntityTypeConfiguration 的 Edm 信息?(一)
1. 案例1 - 类型和表之间的EF代码优先映射 从EF6.1开始,有一种更简单的方法可以做到这一点.有关 详细信息,请参阅我的新EF6.1类型和表格之间的映射. 直接贴代码了 从EF6.1开始,有一 ...
- 『珂朵莉树 Old Driver Tree』
珂朵莉树 珂朵莉树其实不是树,只是一个借助平衡树实现的数据结构,主要是对于有区间赋值的数据结构题,可以用很暴力的代码很高效地完成任务,当然这是建立在数据随机的基础上的. 即使数据不是随机的,写一个珂朵 ...
- [笔记] vs code 设置终端
设置文件: setting.json 1 设置自定义终端 cmd "terminal.integrated.shell.windows": "C:\\WINDOWS\\S ...
- Bootstrap-table表格插件的使用方法
前言 上次写了一个可拖动列表的插件,但除了这个特点没什么优点了,接下写的是我们常用的Bootstrap-table表格插件 正文 官网:https://bootstrap-table.com/ 有两个 ...
- 图解Java数据结构之单链表
本篇文章介绍数据结构中的单链表. 链表(Linked List)介绍 链表可分为三类: 单链表 双向链表 循环列表 下面具体分析三个链表的应用. 单链表 链表是有序的列表,它在内存中存储方式如下: 虽 ...
- JS高阶---继承模式(原型链继承)
[前言] 之前已经介绍了对象创建的五种模式,下面看下继承模式 本节介绍下<原型链继承> [主体] 验证如下: 关键点: .