hiho 1474 拆字遊戲(dfs,記錄狀態)

2022-03-23 03:39:00 字數 1957 閱讀 7294

時間限制:10000ms

單點時限:1000ms

記憶體限制:256mb

給出乙個01矩陣,1佔據的部分即為需要拆的字,如果兩個1分享一條邊,那麼它們連通。連通具有傳遞性,即如果a、b連通,b、c連通,則a、c連通。

連通的一系列1被看做可以拆出的一塊,現在小kui需要輸出這些拆出的塊(用乙個01矩陣表示,並且要求矩陣的大小盡可能的小)。

為了確保輸出的順序盡可能的和書寫的順序一致,小kui從每個塊中選出最左上角的點(最左側的點中,最靠上的)作為代表點,然後按照代表點從左到右(若相同則按從上到下)的順序輸出所有拆出的塊。

輸入的第一行為兩個正整數n、m,表示01矩陣的大小。

接下來n行,每行m個01字元,描述乙個需要拆的字。

對於40%的資料,滿足1<=n,m<=10。

對於100%的資料,滿足1<=n,m<=500。

按照代表點從左到右(若相同則按從上到下)的順序輸出所有拆出的塊。

對於每個塊,先輸出其大小,然後用對應的01矩陣表示這個塊。

樣例輸入

樣例輸出

11 17

00000000000000000

00001111111100000

00000000000000000

00111111111111100

00000000100000000

00000010101110000

00000110100011000

00011100100001000

00000010100000000

00000001100000000

00000000000000000

7 13

1111111111111

0000001000000

0000001000000

0000001000000

0000001000000

0000001000000

0000011000000

3 40001

0011

1110

1 811111111

1 11

3 41110

0011

0001

樣例輸入

14 22

0000000000001111111100

0000000000001101101100

0000110000001111111100

0000110000001101101100

0111111110001111111100

0110110110000000000000

0110110110000011000000

0111111110001111111000

0000110000000001100000

0000110110001111111100

0111111111000111111000

0000000010001101101100

0000000000000001100000

0000000000000011100000

樣例輸出

10 9

000110000

000110000

111111110

110110110

110110110

111111110

000110000

000110110

111111111

000000010

5 811111111

11011011

11111111

11011011

11111111

8 800110000

11111110

00011000

11111111

01111110

11011011

00011000

00111000

每日一題之 hiho232周 拆字遊戲

給出乙個01矩陣,1佔據的部分即為需要拆的字,如果兩個1分享一條邊,那麼它們連通。連通具有傳遞性,即如果a b連通,b c連通,則a c連通。連通的一系列1被看做可以拆出的一塊,現在小kui需要輸出這些拆出的塊 用乙個01矩陣表示,並且要求矩陣的大小盡可能的小 為了確保輸出的順序盡可能的和書寫的順序...

hiho博弈遊戲 Nim遊戲

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述今天我們要認識一對新朋友,alice與bob。alice與bob總是在進行各種各樣的比試,今天他們在玩乙個取石子的遊戲。在這個遊戲中,alice和bob放置了n堆不同的石子,編號1.n,第i堆中有a i 個石子。每一次行動...

hiho 1163 博弈遊戲 Nim遊戲

這個博弈可以說是很經典了,就是我總忘。nim博弈。我猜都不會在比賽裡考了吧。結論很簡單。就是所有堆取異或 為0乙個人勝,不為0另外的人勝。include include include include include include int main int m while scanf d m eo...