QOJ.ac

QOJ

时间限制: 0.7 s 内存限制: 84 MB 总分: 100

#13467. 島嶼管理員

统计

喝喝粥最近剛買下了 $\alpha$ 島,他打算在這裡建立一套管理體系。

$\alpha$ 島的大致情況如下:

  • $\alpha$ 島的形狀是一個 $n$ 行 $m$ 列的矩形。
  • $\alpha$ 島的地勢高低不平,具體地,如果將島嶼的行平均劃分成 $n$ 份,列平均劃分成 $m$ 份,那麼,第 $i$ 行第 $j$ 列的那一塊地的高度就是 $h_{i,j}$。
  • 所有地塊的高度都在 $[1,n\times m]$ 之間,而且每一塊地的高度互不相同。

為了很好地管理 $\alpha$ 島,喝喝粥有了一個初步的想法:

當喝喝粥站在某一個位置時,他就可以管住這一行這一列的所有地。

接下來,喝喝粥將土地分成 $4$ 塊,如圖所示:

這張圖表示喝喝粥站在綠色區域,可以管住綠色、藍色和黃色區域的所有位置。

但是喝喝粥管不住 A、B、C、D 四個區域。於是喝喝粥就決定將這些土地分封給他的小弟們,一個小弟只能得到一個區域。它的小弟也會以類似的方式把土地分給它的小弟的小弟……特別地,如果 A、B、C、D 區域中有區域退化為空區域,那麼這個退化的區域就不再被分封。

喝喝粥和它的小弟們各有各的想法:

  • 他可能會想站在最高處,這樣他就可以做紅太陽光芒普照
  • 他可能會想站在最低處,這樣他就可以隱藏自己成為錈王

喝喝粥的小弟的小弟等人也是如此。具體地,設喝喝粥為喝喝粥的 $0$ 級小弟,喝喝粥的小弟為喝喝粥的 $1$ 級小弟,喝喝粥的小弟的小弟為喝喝粥的 $2$ 級小弟,喝喝粥的小弟的小弟的小弟為喝喝粥的 $3$ 級小弟……給定一個長度為 $\min(n,m)$ 的數列 $a$。那麼,假設一個人是喝喝粥的 $k$ 級小弟:

  • 如果 $a_k=0$,他會站在他分到的土地的最低點;
  • 否則,$a_k=1$,他會站在他分到的土地的最高點。

“我的大哥的大哥不是我的大哥”。參與管理這片土地的人只認自己的大哥。

喝喝粥想知道每一個參與管理 $\alpha$ 島的人的大哥是誰。

請你輸出一個 $n\times m$ 的矩陣:

  • 如果第 $i$ 行第 $j$ 列沒有人站著或是喝喝粥站著,那麼這個矩陣的第 $i$ 行第 $j$ 列的元素就是 $0$;
  • 否則這個矩陣的第 $i$ 行第 $j$ 列的元素就是第 $i$ 行第 $j$ 列的人的大哥所佔位置的高度。

輸入格式

第一行兩個正整數 $n,m$。

接下來一行有 $\min(n,m)$ 個數,第 $i$ 個數代表 $a_{i-1}$。

接下來 $n$ 行,每行有 $m$ 個正整數,第 $i$ 行的第 $j$ 個數表示 $h_{i,j}$。

輸出格式

一個 $n$ 行 $m$ 列的矩陣,表示的意義如題意所示。

範例

範例 1 輸入

3 3
0 1 0
1 2 3
4 5 6
7 8 9

範例 1 輸出

0 0 0
0 9 0
0 0 1

範例 2 輸入

12 8
1 0 0 1 0 1 0 1
87 19 88 4 25 38 1 69
74 81 15 22 89 65 94 23
8 85 70 40 26 92 79 24
61 76 73 63 39 28 84 35
18 37 54 13 64 52 44 51
6 29 42 86 11 32 5 3
36 34 82 9 59 43 67 12
30 27 93 56 49 20 14 50
55 80 83 33 7 31 41 91
75 2 48 10 17 21 45 78
53 71 57 46 68 96 77 66
72 58 16 47 60 95 90 62

範例 2 輸出

0 0 0 2 0 0 96 0
0 0 0 0 4 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0
0 0 4 0 0 0 0 0
0 0 0 0 0 0 0 0
0 96 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 96 0 0 0 0 96

子任務

子任務 $1$:$10$ 分,$1\leq n\times m\leq 10000$。

子任務 $2$:$10$ 分,$1\leq n\times m\leq 1000000$。

子任務 $3$:$10$ 分,資料隨機生成,生成方式為:$a_i$ 在 $0$ 和 $1$ 中隨機生成,$h$ 陣列為一個隨機排列。

子任務 $4$:$20$ 分,保證 $\forall i,a_i = 0$。

子任務 $5$:$30$ 分,$1\leq n\times m \leq 3000000$。

子任務 $6$:$20$ 分,沒有特殊限制。

對於 $100\%$ 的資料,$1\leq n\times m\leq 4000000$。

本題的輸入和輸出的量都比較大,建議使用較快的 IO 方式。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.