題目:兩個熊孩子在n*m的平地上放火玩,#表示草,兩個熊孩子分別選乙個#格仔點火,火可以向上向下向左向右在有草的格仔蔓延,點火的地方時間為0,蔓延至下一格的時間依次加一。求燒完所有的草需要的最少時間。如不能燒完輸出-1。input第一行,輸入乙個t,表示有t組測試資料。
每組資料由乙個n,m分別表示行列
1 <= t <=100, 1 <= n <=10, 1 <= m <=10
output
輸出最少需要的時間》
sample input
43 3
.#..#.
3 3.#.
#.#.#.
3 3…
#.#…
3 3…#
#.#sample output
case 1: 1
case 2: -1
case 3: 0
case 4: 2
解:
首先計算草塊的個數,如果其大於2顯然輸出-1
當其小於二時,列舉可能的任意兩個可能的點。
對於就算塊數也是通過bfs來實現
對於列舉任意兩個的情況如果僅是暴力的列舉會超時
所以我們給每個節點附上屬於的區域的標記,著有利於減小列舉的次數
細節看**
ac**
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
#include
using
namespace std;
char mp[15]
[15];
//存圖
int vis[15]
[15];
//訪問標記
int belong[15]
[15];
//節點屬於區域標記
int op[4]
[2]=
,,,}
;//運算元組
int board =0;
//存區域個數
typedef
struct
status;
intbfs
(int n,
int m)}}
if(maxstep}}
return minstep;
}void
find_board
(int x,
int y,
int n,
int m)
}return;}
intmain()
board =0;
memset
(belong,0,
sizeof
(belong));
for(
int a=
1;a<=n;a++
)for
(int b=
1;b<=m;b++
)printf
("case %d: "
,i);
if(board>=3)
else
}return0;
}
今日學習總結2 15
繫結方法分兩種 繫結給類的和繫結給物件的 既不繫結給類也不繫結給物件 隱藏屬性是有應用場景的 a.在類定義階段用雙下劃線開頭的方式將屬性隱藏起來,發生了語法生的變形 類名 屬性名 b.隱藏對外不對內 c.只有在類定義階段發生變形,其他情況都不發生變形了 類裡面的隱藏屬性,類外部可以使用,但是目的不是...
FZU 單詞問題
給出乙個完整的句子,這個句子中不包含不可見字元或者空格,於是在這個句子中有許多不同的單詞。乙個單詞是指一串連續的最長的英文本母 大寫或小寫 例如 abc 中,abc 就是乙個單詞,而 ab bc 都不算單詞。輸入包含多組資料 輸入資料第一行是乙個句子,只包含可見字元 不包含空格 句子長度不超過 10...
fzu 單詞問題
description 給出乙個完整的句子,這個句子中不包含不可見字元或者空格,於是在這個句子中有許多不同的單詞。乙個單詞是指一串連續的最長的英文本母 大寫或小寫 例如 abc 中,abc 就是乙個單詞,而 ab bc 都不算單詞。input 輸入包含多組資料 輸入資料第一行是乙個句子,只包含可見字...