洛谷 P1913 L国的战斗之伞兵

Posted 一蓑烟雨任生平

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷 P1913 L国的战斗之伞兵相关的知识,希望对你有一定的参考价值。

题目背景

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

题目描述

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

输入输出格式

输入格式:

 

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

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

 

输出格式:

 

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

 

输入输出样例

输入样例#1: 复制
5 5
rrrrr
rdddr
rroll
uuuuu
uuuuu
输出样例#1: 复制
19

说明

数据范围:

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

思路:模拟,一共1000000个点,先提前与处理出某个点能否到无风区,然后o(1)判断即可。

 

#include<iostream>
using namespace std;
int n,m,num;
char a[1002][1002];
bool b[1002][1002];
void gui(int i,int j){
    b[i][j]=true;
    if(a[i+1][j]==u)    gui(i+1,j);
    if(a[i-1][j]==d)    gui(i-1,j);
    if(a[i][j+1]==l)    gui(i,j+1);
    if(a[i][j-1]==r)    gui(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)    gui(i,j);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            if(b[i][j]) num++;
    cout<<num; 
}

 

 

以上是关于洛谷 P1913 L国的战斗之伞兵的主要内容,如果未能解决你的问题,请参考以下文章

洛谷——P1910 L国的战斗之间谍

洛谷 P1910 L国的战斗之间谍(水题日常)

P1910 L国的战斗之间谍

P2129 L国的战斗续之多路出击

[luoguP2129] L国的战斗续之多路出击(模拟 || 矩阵)

luogu1910L国的战斗之间谍