1. 程式人生 > >【搜尋】洛谷 P1506 拯救oibh總部

【搜尋】洛谷 P1506 拯救oibh總部

題目背景

oibh總部突然被水淹沒了!現在需要你的救援……

題目描述

oibh被突來的洪水淹沒了>.<還好oibh總部有在某些重要的地方起一些圍牆,用號表示,而一個封閉的號區域洪水是進不去的……現在給出oibh的圍牆建設圖,問oibh總部沒被淹到的重要區域(由”0”表示)有多少。

輸入輸出格式

輸入格式:

第一行是兩個數,x和y(x,y<=500)

第二行及以下是一個由*和0組成的x*y的圖。

輸出格式:

輸出沒被水淹沒的oibh總部的“0”的數量。

輸入輸出樣例

輸入樣例#1:

樣例輸入1
4 5
00000
00*00
0*0*0
00*00

樣例輸入2
這裡寫圖片描述

輸出樣例#1:

樣例輸出1
1

樣例輸出2
5

程式碼

#include<iostream>
#include<cstring>
using namespace std;
int a[505][505],total;
int dr[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int x,y;
void search(int m,int n)
{
    a[m][n]=0;
    for(int i=0;i<4;i++)
    {
        int nx=m+dr[i][0],ny=n+dr[i][1];
        if(a[nx][ny]==0
)continue; else search(nx,ny); } } int main() { cin>>x>>y; for(int i=1;i<=x;i++) { for(int j=1;j<=y;j++) { char k; cin>>k; if(k=='0')a[i][j]=1; else a[i][j]=0; } } for(int i=1
;i<=y;i++) { if(a[1][i]==1)search(1,i); if(a[x][i]==1)search(x,i); } for(int i=1;i<=x;i++) { if(a[i][1]==1)search(i,1); if(a[i][y]==1)search(i,y); } for(int i=1;i<=x;i++) { for(int j=1;j<=y;j++) total+=a[i][j]; } cout<<total; return 0; }

相關推薦

搜尋 P1506 拯救oibh總部

題目背景 oibh總部突然被水淹沒了!現在需要你的救援…… 題目描述 oibh被突來的洪水淹沒了>.<還好oibh總部有在某些重要的地方起一些圍牆,用號表示,而一個封閉的號區域洪水是進不去的……現在給出oibh的圍牆建設圖,問oibh總部沒

P1506 拯救oibh總部DFS/Flood Fill

多少 題目 一行 輸出 救援 輸出格式 現在 dfs 輸入輸出 題目背景 oibh總部突然被水淹沒了!現在需要你的救援…… 題目描述 oibh被突來的洪水淹沒了>.<還好oibh總部有在某些重要的地方起一些圍墻,用號表示,而一個

搜尋 P1465 序言頁碼 Preface Numbering

題目描述 一類書的序言是以羅馬數字標頁碼的。傳統羅馬數字用單個字母表示特定的數值,以下是標準數字表: I 1 V 5 X 10 L 50 C 100 D 500 M 1000 最多3個同樣的可以表示為10n的數字(I,X,C,M)可以連續放在一起,表示它們

搜尋 P1433 吃乳酪

題目描述 房間裡放著n塊乳酪。一隻小老鼠要把它們都吃掉,問至少要跑多少距離?老鼠一開始在(0,0)點處。 輸入輸出格式 輸入格式: 第一行一個數n (n<=15) 接下來每行2個實數,表

數論P1372又是畢業季

自信 blog span 學校 描述 畢業 正整數 題目 如何 題目背景 “叮鈴鈴鈴”,隨著高考最後一科結考鈴聲的敲響,三年青春時光頓時凝固於此刻。畢業的欣喜怎敵那離別的不舍,憧憬著未來仍毋忘逝去的歌。1000多個日夜的歡笑和淚水,全凝聚在畢業晚會上,相信,這一定是一生最難

數論P1414又是畢業季II

can pre 高考 for mes 開始 輸入 們的 cnblogs 題目背景 “叮鈴鈴鈴”,隨著高考最後一科結考鈴聲的敲響,三年青春時光頓時凝固於此刻。畢業的欣喜怎敵那離別的不舍,憧憬著未來仍毋忘逝去的歌。1000多個日夜的歡笑和淚水,全凝聚在畢業晚會上,相信,這一定是

原創 LUOGU P3373 模板線段樹2

取模 file 需要 code ace highlight dig org zh-cn P3373 【模板】線段樹 2 題目描述 如題,已知一個數列,你需要進行下面兩種操作: 1.將某區間每一個數加上x 2.將某區間每一個數乘上x 3.求出

題解P1975排序

space getchar() class std -- names char 圖書管理員 wap 分塊,註意重復的值之間的處理。跟普通分塊的操作一樣的啦,具體可以參見‘不勤勞的圖書管理員’。 #include <bits/stdc++.h> using na

p1781P1781宇宙總統題解

brush blog iostream class main 一個 成了 stream ring 此題原本是一個簡單的排序,但因為數據範圍的限制,所以變成了一個需采用字符串排序的題目,接下來我將給大家講一下如何字符串排序。 首先先判斷為位數上是否相同,如果不同再比較那一位的

p2722P2722總分題解

一個 ++ int ostream highlight log i++ space gpo 這個題是一個裸的完全背包問題,但是數組需要開大, 代碼 #include<iostream> using namespace std; int n,m,v,i; int

p1897P1897電梯裏的愛情題解

names pan cst AC log 個數 bits cstring nbsp 這個題是一個搜索題,可以先算出最高樓層,並算出不重復的樓層的個數,要註意的一點就是一定不要把0樓算在內。 代碼 #include<iostream> #include<c

DP1004方格取數

一個 應該 什麽 == 美的 ret cstring clas bool 題目在這裏 首先想到的是DFS,附上80分代碼(不知道為什麽WA了一個點): #include <cstdio> #include <cstring> #def

題解P2418 yyy loves OI IV

轉移 || 暴力 兩種 clu OS AD spa IT 感覺很是妙啊……這題數次誤入歧途...最開始想的二維dp,單調隊列優化;無果,卒。於是沒忍住看了下標簽:暴力枚舉?搜索?於是開始想記憶化搜索。以為會有什麽很強的剪枝之類的;30分,卒。最後終於回到正道上:50 000

題解6月月賽 —— 「數學」約數個數和

分解 pri clas left pac 這樣的 DC 兩個 探測   看德國戰墨西哥去了結果發現比賽只剩下30分鐘……當然之後又思考這題挺久也還是不會做。看了一下題解,覺得這個做法挺厲害的,在這裏記錄一下:   原式實際上就是:(\(K +=

p1434P1434滑雪題解及記憶化搜索的基本步驟

沒有 pac amp pri ring %d 產生 AR stream 滑雪是一道dp及記憶化搜索的經典題目。 所謂記憶化搜索便是在搜索的過程中邊記錄邊搜索的一個算法。 當下次搜到這裏時,便直接使用。 而且記憶化搜索一定要滿足無後效性,為什麽呢,因為如果不滿足無後效性

p1091p1091合唱隊形題解

std ring CI 合唱隊 我們 amp ostream code n) 合唱隊形首先要滿足的是從1這個位置到中間任意的位置為單增的,從中間任意的位置到最後是單減的,且長度最長。這樣才能滿足出列的同學最少。 如果要滿足這個條件那麽我們可以先預處理出每個點的從前找的最長

p1038P1038神經網絡題解

style sin bool lin \n 基本上 一個點 CA 拓撲排序 這個題不得不說是一道大坑題,為什麽這麽說呢,這題目不僅難懂,還非常適合那種被生物奧賽刷下來而來到信息奧賽的學生。 因此我們先分析一下題目的坑點。 1: 題目的圖分為輸入層,輸出層,以及中間層。

p3870P3870開關題解

long 自然 mes code 普通 flag 範圍 turn -m 我們先看題面,一看是一個區間操作,再看一下數據範圍,就可以很輕松地想到是用一個數據結構來加快區間查詢和修改的速度,所以我們很自然的就想到了線段樹。 但是這個題還跟普通的線段樹不一樣,這個題可以說要思考

KMPP2375 [NOI2014]動物園 題解

clu 控制 () borde 會有 strlen 觀察 約束 brush 一開始的方向應該對了,但是沒有想到合理的優化還是沒寫出來…… 題目描述 近日,園長發現動物園中好吃懶做的動物越來越多了。例如企鵝,只會賣萌向遊客要吃的。為了整治動物園的不良風氣,讓

題解P1941 [NOIP2014TG] 飛揚的小鳥(揹包DP)

次元傳送門:洛谷P1941 思路 從題意可知 在每個單位時間內 可以無限地向上飛 但是隻能向下掉一次 所以我們可以考慮運用揹包解決這道題 上升時 用完全揹包 下降時 用01揹包 設f[x][y]為在座標(x,y)時的最小點選螢幕次數 當飛到天花板時和撞到柱子時特判 一開始設ans為極大值 如