week12 CSP模擬T2消消樂

2021-10-05 20:30:03 字數 1988 閱讀 4539

q老師是個很老實的老師,最近在積極準備考研。q老師平時只喜歡用linux系統,所以q老師的電腦上沒什麼娛樂的遊戲,所以q老師平時除了玩linux上的賽車遊戲supertuxkart之外,就是喜歡消消樂了。

遊戲在乙個包含有n行m列的棋盤上進行,棋盤的每個格仔都有一種顏色的棋子。當一行或一列上有連續三個或更多的相同顏色的棋子時,這些棋子都被消除。當有多處可以被消除時,這些地方的棋子將同時被消除。

乙個棋子可能在某一行和某一列同時被消除。

由於這個遊戲是闖關制,而且有時間限制,當q老師開啟下一關時,q老師的好哥們叫q老師去爬泰山去了,q老師不想輸在這一關,所以它來求助你了!!

input

輸入第一行包含兩個整數n,m,表示行數和列數

接下來n行m列,每行中數字用空格隔開,每個數字代表這個位置的棋子的顏色。數字都大於0.

output

輸出n行m列,每行中數字用空格隔開,輸出消除之後的棋盤。(如果乙個方格中的棋子被消除,則對應的方格輸出0,否則輸出棋子的顏色編號。)

sample input 1

4 5

2 2 3 1 2

3 4 5 1 4

2 3 2 1 3

2 2 2 4 4

sample output 1

2 2 3 0 2

3 4 5 0 4

2 3 2 0 3

0 0 0 4 4

sample input 2

4 5

2 2 3 1 2

3 1 1 1 1

2 3 2 1 3

2 2 3 3 3

sample output 2

2 2 3 0 2

3 0 0 0 0

2 3 2 0 3

2 2 0 0 0

我的思路:

這道題是要利用消消樂的規則(即橫/豎超過連續一樣的大於等於3個就消下去,這裡表現為置0),對於矩陣進行變化。我的思路是設定乙個比對矩陣(初始化為全0),對於輸入的初始矩陣,先按行查詢,把滿足條件的連續位置在比對矩陣中設定為1,再按列查詢,把滿足條件的連續位置在對比矩陣設定為1。最後遍歷初始矩陣,在比對矩陣相應位置為0的地方輸出初始矩陣的值,比對矩陣對應位置為1的地方輸出「0」。

我的總結:

這道題我在判斷連續且長度大於等於3的條件上犯了一些錯誤,主要是①在換行的時候標記值清零②找到不同的值後,是從這個值的前乙個開始為可消去段 等錯誤。下次要更加細心。

我的**:

#include

#include

#include

using

namespace std;

int raw[35]

[35],mu[35]

[35],n,m,tag;

intmain()

else

} tag=0;

}}if(j==m-1)

}}}for

(int i=

0;i)for

(int j=

0;j)else

} tag=0;

}}if(j==n-1)

}}}for

(int i=

0;i(i!=n-1)

printf

("\n");

}return0;

}

2019 05 25 模擬 A 組 T2 數格仔

暴搜搜出前面幾個的答案 然後列舉每一項的係數再列舉乙個常數項推出規律 規律 fn fn 1 5 f n 2 fn 3 fn 4 f n f 5 times f f f fn fn 1 5 fn 2 fn 3 fn 4 然後將搜尋出來的前四項帶入 矩陣乘法優化 include include incl...

NOIP 模擬題 T2 寶藏(樹形dp)

題解 樹形dp 其實這道題說起來很簡單,用四個陣列 d1 d0 u0 u1分別表示從當前點向下更新,不返回 從當前點向下更新再回到當前點 從當前點向上更新回到當前點 從當前點向上更新不返回。用兩遍dfs求出這四個陣列 實現起來細節會比較多,耐心處理 include include include d...

模擬 2018 9洛谷月賽T2

傳送門 一道模擬題?根據給出的條件可以分類討論列出關於k的不等式,然後求區間的交 但是求交不好求,可以轉化成求補集的並,還是挺常見的套路 具體實現還是很有技巧的,可以用結構體存這個點和它的型別 左端點or右端點 然後通過排序求並,具體細節看注釋 include include include inc...