#P15705. [2026作业]单面电路布线
[2026作业]单面电路布线
题目描述
Dongkyu 正在设计一块单面印刷电路板。你可以把电路板看作无限大的二维平面,把焊盘看作平面上的点,把导线看作平面上的连通折线。
电路中共有 个焊盘,它们按水平方向排列。自左向右第 个焊盘位于坐标
每个焊盘都有一个标签,标签是 到 之间的整数。对于每个 ,恰好有两个焊盘的标签为 。
你需要绘制 条导线,将标签相同的两个焊盘连接起来。每条导线必须是一条由若干条线段组成的折线,并满足:
- 每条线段长度为正整数;
- 每条线段平行于坐标轴;
- 导线从一个焊盘出发,到另一个同标签焊盘结束;
- 任意两条导线不能有公共点。
请判断是否能完成布线。如果可以,输出任意一种合法方案。
输入格式
第一行包含一个整数 。
第二行包含 个整数 ,表示自左向右第 个焊盘的标签。
保证每个 到 之间的整数都恰好出现两次。
输出格式
如果无法完成符合要求的布线,输出一行:
NO
否则第一行输出:
YES
接下来输出 行,按标签编号从小到大描述对应导线。
对于标签为 的导线,必须从这两个焊盘中较靠左的那个焊盘出发。该行首先输出整数 ,表示导线由多少条线段组成,要求
接下来依次输出每条线段的方向和长度。方向用一个字符表示:
D:向下,即 减小;U:向上,即 增大;R:向右,即 增大;L:向左,即 减小。
每条线段长度必须为正整数。请用空格分隔字母和整数。
每条折线不能自交,也不能自触。不同折线之间不能有公共点。所有折线顶点坐标的绝对值都不能超过 。
如果存在多种方案,输出任意一种即可。
数据范围
- ;
- ;
- 每个 到 的整数在序列 中恰好出现两次。
样例 1
输入
4
1 2 3 4 1 2 3 4
输出
YES
3 U 1 R 4 D 1
5 D 1 L 2 U 3 R 6 D 2
5 D 2 R 6 U 3 L 2 D 1
3 D 1 R 4 U 1
样例 2
输入
4
1 2 3 4 1 3 2 4
输出
NO
样例说明

样例 1 中,输出给出了一种可行布线方案。样例 2 中,不可能在不相交的条件下连接所有相同标签的焊盘。