Gold Miner Game 一个分治的算法

问题描述

Nezzar is addicted to game Gold Miner recently.

Gold Miner is a game in which the player is in an n×n grid, and the goal is to collect gold without entering forbidden area. It is known that cell (i,j) is forbidden to enter if and only if i=j or i=j+1.

In one round, Nezzar may choose two non-empty sets X,Y⊆[n], and collect gold in cell (i,j) for all i∈X,j∈Y. However, he immediately fails if there exists i∈X and j∈Y such that (i,j) is forbidden to enter.

As a greedy miner, Nezzar would like to enter all but forbidden cells to collect gold. However, he is running out of time! He can only play the game for at most 50 rounds. Can you design an algorithm to solve this problem for him?

Input

One line containing one integer n (2≤n≤3000), the size of the grid.

Output

Please read this part carefully, as you may fail to pass the test cases if you have formating issues.

For each round with subsets X,Y being chosen, output elements in X increasingly in the first line, and then output elements in Y increasingly in the second line.

Sample Input

3

Sample Output

1
2 3
1 2
3
3
1

Note

It is allowed to enter some cells multiple times!

Subtasks

(5 points) n≤7
(15 points) n≤50
(10 points) n≤100
(30 points) n≤1000
(40 points) n≤3000

Hint

Believe it or not, we can use divide-and-conquer technique to solve this task.

Let T(n) denote the number of rounds we need to solve the above task with parameter n. Notice that T(n)=T(n/2)+O(1) implies T(n)=O(logn), and we may need an algorithm satisfying this recurrence to solve the problem.

解题思路

提示说 T (n) = T (n / 2) + O (1),因此尝试通过在 T (N / 2) 的开头添加常量 cXY 的组合来覆盖它。我完了。 T (NS)。

首先,我想人工模拟并确认每个人都有什么样的绘图方法。从 n = 5 开始至少需要四步,但是一旦你得到某个数字,就没有快速的方法来计算它。绘制和相位同步数对应不同的绘制方法。简而言之,我找不到通用的解决方案。

第二行基于提示,分而治之的思想。我想调查T(n)和T(n/2)之间的关系。首先想到的是你能不能画、2,然后你可以在左上角添加y的后半部分。这是因为 x 总是遍历每一行,所以它完全填满了右上角,下半部分起作用。问题是,用这种分而治之的方法,只能得到T(n)=2T(n/2)+O(1),而从之前学到的知识来看,T(n)=aT(n/ 2)+ O(1) b) + O (1).) 只能得到。当它小于 b 时,分治法给出了很好的结果。所以通过。

最终的解决方案是使用分而治之的规则。如果你知道如何填充一个T(n/2)的图像,你可以用画笔同时填充4个区域,如果需要5个步骤,剩下的空白将分4个步骤完成(n为奇数) )。

在这里插入图片描述

代码实现

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值