紅色**於山脈,象徵著狂躁、憤怒、混亂,血雨腥風,電光火石。藍色**於海島,象徵著控制、幻覺、詭計,運籌帷幄,謀定後動。
綠色**於樹林,象徵著生命、蠻力、成長,橫衝直撞,生生不息。
黑色**於沼澤,象徵著死亡、貪婪、腐敗,追求卓越,不計代價。
白色**於平原,象徵著秩序、公平、正義,攜手共進,穩中求勝。
現在,你作為一名新星鵬洛客,找到了一塊絕佳的修煉地。這塊地方可以被描述成乙個 n x m 的矩形。你已經在這塊地中的一些位置打好了標記。接下去,就該對整塊地賦予你的顏色了。乙個位置能被賦予你的顏色,當且僅當滿足以下條件之一:
1. 這個位置被打上了標記。
2. 這個位置在不經過被打標記的位置的情況下與邊界不連通(這個圖是四聯通的)。換句話說,如果你從這個位置開始,在不經過被打標記的位置,且只能向上下左右四個方向移動的情況下永遠不能走到地圖的邊界,那麼這個位置符合條件。
現在,你的好**想知道,你能為多少個位置賦予你自己的顏色呢?
第一行包含兩個正整數 n, m ,表示地圖的長和寬。接下去 n 行,每行乙個長為 m 的字串,表示地圖的一行。
其中 表示該位置未被打標記; 表示該位置被打了標記。
保證地圖僅由 和 構成。
輸出僅一行,包含乙個整數,表示你的答案。示例1複製4 4複製....
.###
.#.#
.###
9可以被賦予顏色的位置在下圖中用1 ≤ n x m ≤ 106從邊界點開始往裡深搜,每走到乙個點對該點進行加1,最後統計哪些點沒有進行加1,則是答案。特別注意的是,資料量太大,可以把輸入資料的每一行當作乙個char陣列,並將每一行每乙個字元做標記後存進vector容器陣列裡,直接對vector陣列進行搜尋、標記和統計。**:
#includeusing namespace std;
const int maxn = 1e6 + 10;
const int dx = ;
const int dy = ;
vectormp[maxn];//資料量太大,則用vector容器代替二維陣列
int n, m;
int tot = 0;
void init()
bool judge(int i, int j)
void dfs(int i, int j)
}int main()
}for(int i = 0; i < n; i++)
}for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
if(mp[i][j] > 1)tot++;//大於1的點,表示由邊界出發可以走到的點,也就是可以到達邊界的點
printf("%d\n", n*m-tot);
} return 0;
}
牛客練習賽40A題
題目描述 作為這命運劇場永遠的觀眾,小d一直注視著這片星光璀璨的舞台,舞台上,少女們的身姿演繹出了一幕幕動人的場景,令人回味無窮。有的時候,小d也會自己寫一些歌曲,來加入starlight的劇本,使得劇本充滿了新的生命力。現在小d又要準備寫樂譜了,小d寫譜的方式比較獨特。他會先寫出乙個按照音符出現順...
牛客練習賽65水題
powered by ab in 局外人 純模擬題。mod 998244353 n int input s list map int input split s.sort if n 1 lst s n 2 1 tmp s n 2 1 ans 1for i in tmp ans ans i mod p...
牛客題集 練習賽76
前段時間發現牛客這些比賽質量挺高的,打算寒假期間補一補 a直接列舉每個小組對遊戲的了解程度,然後每個人從前到後連著組隊,如果當前隊伍了解程度剛好等於列舉的了解值,說明能夠組成一隊,後面的人再自行一一組隊,否則,當前列舉值不符合條件。include define debug freopen r.txt...