码迷,mamicode.com
首页 > 其他好文 > 详细

洛谷 P1913 L国的战斗之伞兵

时间:2017-12-01 21:58:04      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:include   bsp   渗透   har   sticky   org   font   nbsp   targe   

题目背景

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国的战斗之伞兵

标签:include   bsp   渗透   har   sticky   org   font   nbsp   targe   

原文地址:http://www.cnblogs.com/cangT-Tlan/p/7932214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!