bdfz_2024_summer/day8/U458497/U458497.md

128 lines
1.6 KiB
Markdown
Raw Normal View History

2024-08-10 01:21:33 +00:00
# 骨牌密铺
## 题目描述
有一个宽度为 $n$ 的栅栏,第 $i$ 列的高度为 $h[i]$。现在请你用 $1\times 2$ 和 $2\times 1$ 的骨牌对其进行密铺,输出方案。
例如 $n=3, h=[1,3,2]$,一个可行方案为:
```plain
U
DU
LRD
```
这里 `L/R` 表示一块水平骨牌的左/右部分,`U/D` 表示一块竖直骨牌的上/下部分;**其余部分输出空格 ` `ASCII码32**。
更多的例子参加样例。
## 输入格式
第一行 1 个整数 $n$
第二行 $n$ 个整数 $h[1,2,...,n]$**保证 $0\le h[i]\le 100$**
## 输出格式
如果无解输出 `-1`;否则,**输出一个 $100$ 行 $n$ 列的字符矩阵,骨牌用 `L/R/U/D` 表示,其余用空格 ` ` 表示**。
* 注意严格按照输出格式进行输出,合法方案必须要输出 100 行
## 样例 #1
### 样例输入 #1
```
3
1 3 2
```
### 样例输出 #1
```
U
DU
LRD
```
## 样例 #2
### 样例输入 #2
```
4
6 7 5 4
```
### 样例输出 #2
```
U
UD
DUU
UDDU
DUUD
UDDU
DLRD
```
## 样例 #3
### 样例输入 #3
```
4
1 2 2 3
```
### 样例输出 #3
```
U
LRD
LRLR
```
## 样例 #4
### 样例输入 #4
```
6
1 2 3 3 2 1
```
### 样例输出 #4
```
LR
LRLR
LRLRLR
```
## 样例 #5
### 样例输入 #5
```
6
1 2 1 1 2 1
```
### 样例输出 #5
```
-1
```
## 提示
**注意,为了样例可读性,样例输出忽略了空行**
对于 27% 的数据,$n,h[i]\le 3$
对于 49% 的数据,$n,h[i]\le 5$
对于另 17% 的数据,$n\le 1000, h[i]\le 2$
对于另 17% 的数据,$n\le 1000, h[i]\le 10$
对于所有数据,$1\le n\le 1000, 0\le h[i]\le 100$