【题解】残缺棋盘

本文介绍了一种使用分治算法解决棋盘残缺问题的方法。当棋盘的边长为2k(1 摘要由CSDN通过智能技术生成

题目

棋手楚继光和张琪曼一动不动地在棋盘前已经沉默地坐了五个小时。

他们全神贯注地盯着每粒棋子。

突然,楚继光说:“原则上我是反对在下棋时说话的,但是我现在不得不开口问:现在究竟该谁走下一步棋了?”

张琪曼说:“谁先走都不重要了,现在的问题是:谁把这个棋盘上的格子损坏了?”

正如图所示,有一正方形棋盘,其边长为 2 k ( 1 < k < 10 ) 2^k(1<k<10) 2k1<k<10,其中有一格损坏。现在想用如图中间所示形状的硬纸板将没有坏的所有格子盖起来。而硬纸板不得放入坏格中和棋盘外面。编程输出一种覆盖方案,将共用一块硬纸板的三个格子用相同的数字表示。

在这里插入图片描述

上图所示是 k = 2 k=2 k=2的情形,且输出结果不一定和图示方案一致,符合题目要求即可,输出时只需输出数字方阵而不必画出格子线。

输入格式

三个整数,即k和坏格子的y坐标和x坐标 (注意坏格子的坐标输入顺序)

输出格式

数字方阵,其中坏坐标以数字 7 7 7表示

样例

样例输入

2 1 1

样例输出

7 4 2 2
4 4 4 2
3 4 4 4
3 3 4 4

题解

8 × 8 8 \times 8 8×8的棋盘为例
在这里插入图片描述
黑色为残缺的部分

现在我们对整个棋盘进行分割在这里插入图片描述
接下来我们在分割处加上一个覆盖物,这是为了保证递归求解每个分割的小块时不会出错

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值