Login with GitHub. Nope?
修正 C++ 的程式碼在使用一定量動態記憶體後會產生 RF 的問題 @ 2019/12/6 4:45pm NeoHOJ 強勢復活中 (Open beta)
Submit  Ranklist

Problem : 166 - 恐龍棋

Problem Statistics

Solved Member: 31  Submission: 64  User Tried: 32

Statement:

你可能下過孔明棋,不過今天你要跟J大俠下恐龍棋。

恐龍棋是一個考驗智力的題目,共有兩個1xN的棋盤〈出題的棋盤A和作答的棋盤B〉。
J大俠會先在棋盤A上擺出一種盤面,並且在棋盤B上擺出另一種盤面。
你的目標是在不增加或減少任何棋子的情況下,用最少的步數把棋盤B上的棋子移動成棋盤A的盤面。
我們定義步數是每顆棋子在棋盤上的移動量。
當然,棋盤B上可能會出現無解的情況。
另外,棋盤B上的某位置同時有多顆棋子是被允許的,並且我們保證棋盤A上每個位置最多只會有一顆棋子。

某個位置上有棋子用o表示、否則用-表示。

比賽補敘:
與答案對應時,所有位置都必須只有一顆棋子,棋子數不一樣就算不合。
換句話說,兩個棋盤上各別棋子總和不相等時,就算無解。

Input:Output:

第一行有兩個正整數N和M,代表棋盤大小1xN〈1≦N≦24〉以及J大俠總共給你M種棋盤B的盤面。〈1≦M≦10〉
第二行是棋盤A的盤面,接下來M行是M種棋盤B的盤面。
請對每個盤面輸出一個數字,每個數字佔一行,代表最少步數。如果無解,請輸出-1。

Sample Input:Sample Output:

5 3
oo-o-
ooooo
o-o-o
o--o-
-1
2
-1

Source:

2012附中暑期資訊培訓選拔賽pB

Problem Setter

Testdata:

TestTimeMemoryScore
01000ms65536kb
11000ms65536kb20
21000ms65536kb20
31000ms65536kb20
41000ms65536kb20
51000ms65536kb20