CF544B Sea and Islands
题目描述
一个物体的地图是一个由 $n$ 行 $n$ 列组成的矩形区域。每个格子最初都被海洋覆盖,但你可以用沙子覆盖地图上的一些格子,使得恰好在地图上出现 $k$ 个岛屿。
如果一组被沙子覆盖的格子可以通过仅在沙子格子间移动、且每次只能移动到相邻的上下左右格子来实现互相连通,则称这一组格子为一个岛屿。格子如果共享一条垂直或水平边,则称它们为相邻。很容易看出,不同的岛屿不能有重叠的格子(否则它们会形成更大的岛屿)。
请找出一种方法,用沙子覆盖部分格子,使得在 $n \times n$ 的地图上恰好出现 $k$ 个岛屿,或者判断是否不存在这样的方式。
输入格式
一行包含两个正整数 $n$ 和 $k$($1 \leq n \leq 100$,$0 \leq k \leq n^{2}$),表示地图大小和需要形成的岛屿数量。
输出格式
如果不存在满足条件的方法,输出一行“NO”。
否则,先输出一行“YES”。接下来输出 $n$ 行,描述地图的状态。描述中的每一行为长度为 $n$ 的字符串,仅包含字符 'S'(表示被海洋覆盖的格子)和 'L'(表示用沙覆盖的格子)。每行长度必须等于 $n$。
如果有多种方案,任选其一输出。
无需考虑使岛屿面积最大。
说明/提示
由 ChatGPT 5 翻译