1985 普及組模擬賽 家族(family)

2021-10-07 08:54:17 字數 1570 閱讀 3339

題目描述

在乙個與世隔絕的島嶼上,有乙個有趣的現象:同乙個家族的人家總是相鄰的(這裡的相鄰是指東南西北四個方向),不同的家族之間總會有河流或是山丘隔絕,但同乙個家族的人不一定有相同姓氏。現在給你島上的地圖,求出島上有多少個不同的家族。島上的地圖有n 行,每行有若干列,每個格仔中要麼是空格表示大海,要麼是『*』表示河流或山丘,要麼是小寫字母,表示一戶人家的姓氏。

輸入

第一行是個數字 n,表示下面資訊的行數,接下來是 n 行字元,每行由小寫字母和*號組成,有些行的最前面也可能包含若干連續的空格,表示這些區域是大海,每一行最多不超過 200 個字元。

輸出

乙個數字,表示家族數。

樣例輸入

樣例輸出

3
資料範圍限制10%的資料, n<=1

30%的資料, n<=10

100% 的資料, n<=100 每一行最多不超過 200 個字元

這道題是一道bfs的模板,沒想到在某谷上還是道綠題,驚悚!

唯一要考慮一下如何去輸入每一行的字元。我們可以用getline();這個函式來輸入一整行。

下面是這道題的幾個坑

坑一:

坑二:在比賽中,如果記憶體限制允許,盡量把陣列開大!!

#include

#include

#include

#include

#include

#include

#include

#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout);

using

namespace std;

const

int max=

2147483647

;const

int n=

1e6;

const

int dx[5]

=;const

int dy[5]

=;string a;

int n,map[

510]

[510

],ans,que[

250010][

2],my[

510]

;void

input()

}bool

check

(int x,

int y)

void

bfs(

int sx,

int sy)}}

intmain()

普及組模擬賽 家族

題目描述 在乙個與世隔絕的島嶼上,有乙個有趣的現象 同乙個家族的人家總是相鄰的 這裡的相鄰是指東南西北四個方向 不同的家族之間總會有河流或是山丘隔絕,但同乙個家族的人不一定有相同姓氏。現在給你島上的地圖,求出島上有多少個不同的家族。島上的地圖有n 行,每行有若干列,每個格仔中要麼是 空格表示大海,要...

2020 10 05 普及組 模擬賽C組總結

總結這次考試沒發揮好,第二題沒有拿滿分,下次要繼續努力 t1 superpow 10 題目大意 已知a b 超級冪 代表 b個a的冪,求n對數的超級冪之積的個位數。正確思路 當打表後可以發現 b是沒用的,如果b大於2,b就等於2,答案和原來的是一樣的。所以處理一下跑個快速冪就行了。至於為什麼拿10分...

2020 11 14 普及組 模擬賽C組總結

這是乙個好東西 作者主頁 t1 操作 題目大意 給你乙個數列,讓你執行一些操作後輸出。這一題找規律即可。t2 遊戲 題目大意 判斷每個人被攻擊和攻擊的情況是否符合題目要求。思路 找規律。因為中間不可能出現三個一樣的攻擊操作,所以只需要判斷有沒有大於3的連續操作,直接輸出個數即可。提示 t3 到達 題...