k991. 人生遊戲
標籤 :
通過比率 : 2人/3人 ( 67% ) [非即時]
評分方式:
Special

最近更新 : 2024-02-02 16:47

內容

有一對兄妹,哥哥是肯肯肯,妹妹是小石頭,他們很會玩遊戲,而且他們從來沒有輸過。

有一天他們被傳送進了一個叫做「人生遊戲(Game of Life)」的世界,他們要跟裡面的人玩遊戲才有辦法出來。

遊戲規則是這樣的:

有一個無限延伸的二維格子平面,每個格子的狀態有存活與死亡,在時刻 $0$ 的時候,有一些格子是存活的,剩下的都是死亡的。

若在時刻 $t$ 某個格子的狀態是存活的,並且周圍 $8$ 格剛好有 $2$ 或 $3$ 格也是存活的,那這個格子在時刻 $t+1$ 會繼續存活,否則會死亡;若在時刻 $t$ 某個格子的狀態是死亡的,並且周圍 $8$ 格剛好有 $3$ 格是存活的,那這個格子在時刻 $t+1$ 會變成存活的狀態。

總共有三關,每關的關主會在時刻 $0$ 的時候將某些格子的狀態設成存活的,肯肯肯和小石頭必須也要在時刻 $0$ 將某些格子設成存活的,並且 $x,y$ 座標限定在 $0\sim 9$ 之間。

  • 第一關的關主會設置一個 $2\times 2$ 的方塊,也就是將 $(20,20),(20,21),(21,20),(21,21)$ 的狀態設成存活。
  • 第二關的關主會設置兩個 $2\times 2$ 的方塊,也就是將 $(20,20),(20,21),(21,20),(21,21)$ 還有 $(23,23),(23,24),(24,23),(24,24)$ 的狀態設成存活。
  • 第三關的關主會設置一個航空母艦,也就是將 $(20,20),(20,21),(21,20),(22,22),(23,21),(23,22)$ 的狀態設成存活。

這三關都有一個有趣的性質,就是只要附近沒有存活的格子,那關主設置的存活的格子在下一個時刻仍然會保持原樣。

肯肯肯和小石頭的目標是要想辦法將某些 $x,y$ 座標在 $0\sim 9$ 之間的格子在時刻 $0$ 設成存活的,並讓它們去消滅關主設置的格子,通關的條件是時刻 $100$ 時所有格子都是死亡的。

小石頭太久沒回家會很害怕,請你幫幫她!

輸入說明

輸入只有一個整數 $\text{level}$,代表是第幾關。

  • $1\leq \text{level}\leq 3$
輸出說明

第一行輸出一個整數 $k$,代表肯肯肯和小石頭在時刻 $0$ 將 $k$ 個格子的狀態設成存活的。

接下來 $k$ 行,每行輸出兩個整數 $x_i,y_i$,代表其中一個被設成存活的格子座標。

  • $0\leq k\leq 100$
  • $0\leq x_i,y_i\leq 9$
  • $i\neq j,(x_i,y_i)\neq (x_j,y_j)$
範例輸入 #1


											
										
範例輸出 #1

											
測資資訊:
記憶體限制: 256 MB
不公開 測資點#0 (30%): 2.0s , <1K
不公開 測資點#1 (30%): 2.0s , <1K
不公開 測資點#2 (40%): 2.0s , <1K
提示 :

這裡有可以測試的 C++ 程式碼(https://ideone.com/MCYo9t),方法是先輸入是第幾關,然後輸入 $k$,代表肯肯肯和小石頭在時刻 $0$ 將 $k$ 個格子的狀態設成存活的,接下來 $k$ 行,每行輸入兩個整數 $x_i,y_i$,代表其中一個被設成存活的格子座標。如果在時刻 $100$ 所有格子都是死亡的程式會顯示 accepted,否則會顯示 wrong answer。

-------------------------------------------------------

$30\%:第一關$

$30\%:第二關$

$40\%:第三關$

標籤:
出處:
第七屆簡單的小競賽 [管理者: becaido (Caido) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」