博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
L国的战斗之伞兵
阅读量:6675 次
发布时间:2019-06-25

本文共 1325 字,大约阅读时间需要 4 分钟。

题目背景

L国即将与I国发动战争!!

题目描述

为了在敌国渗透作战,指挥官决定:派出伞兵前往敌国!然而敌国的风十分强烈,能让伞兵在同一高度不停转悠,直到被刮到一个无风区……(可怜的小兵)

输入输出格式

输入格式:

 

第一行:n、m两个正整数,表示敌国的大小。

以下n行,每行m个字符,“u”表示风向北吹;“d”表示风向南吹;“l”表示风向西吹;“r”表示风向东吹;“o”表示无风。(上北下南,左西右东)

 

输出格式:

 

一个数:表示有几个点可以放下伞兵。

 

输入输出样例

输入样例#1: 
5 5rrrrrrdddrrrolluuuuuuuuuu
输出样例#1: 
19

说明

数据范围:

1≤n≤1000,1≤m≤1000.

Solution:dfs推出能到达的点。

#include
#define REP(i, a, b) for(int i = (a); i <= (b); ++ i)#define REP(j, a, b) for(int j = (a); j <= (b); ++ j)#define PER(i, a, b) for(int i = (a); i >= (b); -- i)using namespace std;const int maxn=1e3+5;template
inline void rd(T &ret){ char c; ret = 0; while ((c = getchar()) < '0' || c > '9'); while (c >= '0' && c <= '9'){ ret = ret * 10 + (c - '0'), c = getchar(); }}int n,m,ans;bool ok[maxn][maxn];char str[maxn][maxn];void dfs(int x,int y){ ok[x][y]=true; if(str[x+1][y]=='u')dfs(x+1,y); if(str[x-1][y]=='d')dfs(x-1,y); if(str[x][y-1]=='r')dfs(x,y-1); if(str[x][y+1]=='l')dfs(x,y+1); return;}int main(){ rd(n),rd(m); REP(i,1,n)scanf("%s",str[i]+1); REP(i,1,n){ REP(j,1,m){ if(str[i][j]=='o')dfs(i,j); } } REP(i,1,n){ REP(j,1,m){ if(ok[i][j])ans++; } } cout<
<

 

转载于:https://www.cnblogs.com/czy-power/p/10470022.html

你可能感兴趣的文章
【BZOJ】2440: [中山市选2011]完全平方数
查看>>
二十四种设计模式:原型模式(Prototype Pattern)
查看>>
小程序右侧边栏
查看>>
小白的Python 学习笔记(八)推导式详解
查看>>
解决sublimeText3无法安装插件有关问题 - There are no packages available for installation
查看>>
一篇文章帮你彻底搞清楚“I/O多路复用”和“异步I/O”的前世今生
查看>>
Xamarin.android 重写axml控件
查看>>
XML 扩展部分
查看>>
Tinyos Makerules解读
查看>>
安装VS2010 SP1时遇到WCF RIA Service 版本错误
查看>>
UI--普通控件总结1--控件使用
查看>>
【外文翻译】使用Timer类去调度任务 ——java
查看>>
关于CountDownLatch控制线程的执行顺序
查看>>
plsql 乱码 注册表 修改文件
查看>>
Docker集群管理(三)—— docker swarm mode基础教程
查看>>
1.urlencoder和urldecoder的使用
查看>>
web移动端布局方式整理
查看>>
蛤玮学计网 -- 简单的判断ip
查看>>
如何解决div里面img图片下方有空白的问题?
查看>>
P3626 [APIO2009]会议中心
查看>>