• 洛谷 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; 
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    第二章第1节: 2020.04.22 智能互联网之核心技术实践篇【一】
    分布式和集群理解
    CMDB了解
    Git常用命令
    brpc支持多协议
    数据库性能瓶颈了解
    接口理解
    mysql explain与索引
    InnoDB的redo log学习
    数据库抖动原因了解
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7932214.html
Copyright © 2020-2023  润新知