Description
给你n块积木,每块积木由三列构成,每块中间那列最长,为固定的H;对于每一块i,左边一列底部会比中间底部高c[i],然后长度为a[i],右边类似地,d[i],b[i].
现在要求你把积木拼接起来,使得所有积木中列底部在同一水平线上,左右两列要么在这条水平线上,要么紧贴着另一块积木某一侧的顶端。
判断是否能够这样拼。注意如果拼的关系围成一个环是不合法的,因为做不到在同一个水平线上。
n≤1e5,H≤200,a,b>0,a+c,b+d≤H.
Analysis
- 两个出发点:积木作为点且以高度关系连边(不可行,边数太多)or 积木作为边 高度作为点(可行)
- 建出图论模型,那么问题转变成找出若干条路径经过所有边