題目鏈結
經過多年的征戰,牛牛在與牛可樂的對決漸漸處於下風,於是牛牛決定對牛可樂來一次大圍剿。
戰場可以看作一張 n*m 的地圖,牛可樂的士兵只能上下左右移動,不能斜著移動,牛牛決定挖一圈陷阱包圍牛可樂的士兵。牛牛想知道包圍牛可樂的士兵所需要的最少的陷阱數量是多少(劃掉,具體請看update),但是牛牛並不會排兵布陣,於是只能求助於你了。
保證地圖的邊界處不會有士兵.
保證牛可樂的士兵是連通的
不要求牛牛使用的陷阱數量最少,只要求牛可樂使用的陷阱構成的包圍圈與牛可樂的士兵之間要求是緊密接觸的,不能有空隙,增加了乙個樣例
updaet2:
在滿足陷阱和牛可樂的士兵的緊密接觸的前提下,輸出牛牛使用的陷阱數量最少的情況
第一行輸入兩個整數 n 和 m,表示地圖的大小
下面 n 行每行 m 個字元,.
.. 表示空地,#
\## 表示士兵。
保證輸出的字串只包含 .
.. 和 #
\##輸出挖完陷阱後的地圖,陷阱用 ∗
∗∗ 來表示.
6 5
.....
.###.
.#.#.
.###.
..##.
.....
.***.
*###*
*#.#*
*###*
.*##*
..**.
10 10
....
....
....
######..
.#######..
.#######..
.##.###...
.##..##...
.....##...
....
....
....
....
....
....
....
..
..******..
.*######*.
*#######*.
*#######*.
*##*###*..
*##**##*..
.**.*##*..
.....**...
....
....
....
....
....
就是模擬圍棋吧,題目保證士兵圍成一圈了,那麼只要 dfs
dfsdf
s 即可,當相鄰元素為 #
\## 時,就將其修改為陷阱,ac**如下:
#include
using
namespace std;
typedef
long
long ll;
const
int n=
505;
int n,m,vis[n]
[n]=
;char g[n]
[n];
int step[4]
[2]=
;void
dfs(
int x,
int y)
}int
main()
牛客小白月賽24 題解
牛客小白月賽24 題解 最後還剩一道計算幾何,其實可以ak,但沒必要 b 簽到 include using namespace std const int n 2e5 10 int a n int main printf d n ans return 0 c 還行 includeusing name...
牛客的小白月賽24補題
沒注意負數取模 呀呀呀呀,打腦殼 保證取模後的結果為正數 x mod mod mod 思路1.挨個嘗試肯定超時 2.就是把平方項展開 a2 b2 2ab 每個平方項的出現次數n 1次 每個2ab形式的和 最後一定注意取余為正數 戳我試試看 include include include includ...
牛客小白月賽24 I 求和
題目鏈結 已知有 n nn 個節點,有 n 1 n 1n 1 條邊,形成乙個樹的結構。給定乙個根節點 k kk,每個節點都有乙個權值,節點i的權值為 v iv i vi 給 m mm 個操作,操作有兩種型別 第一行給出三個正整數 n,m k n,m,k n,m,k,表示樹的節點數 操作次數 和這棵樹...