当前位置: 代码迷 >> 综合 >> Edge 边缘
  详细解决方案

Edge 边缘

热度:82   发布时间:2023-11-25 03:00:35.0

题目链接:

描述:

对于包装在小包装中的产品,有必要将包含使用说明的纸张折叠起来,直到其尺寸变得足够小。我们假设一张纸是矩形的,并且只沿着平行于其最初较短边的线折叠。然而,沿着这样一条线折叠的动作可以在两个方向上进行:要么将纸张顶部的表面放在一起,要么将其底部的表面放在一起。在这两种情况下,被折叠线分开的矩形的两个部分都整齐地放在一起,我们忽略了折叠后的纸张厚度的任何差异。
在执行了几个这样的折叠步骤之后,我们可以再次展开纸张并查看其较长的边缘固定纸张,使其显示为一维曲线,实际上是线段的串联。如果我们沿着这条曲线沿固定方向移动,我们可以将折叠纸张的每个地方分类为 A 型(表示顺时针转动)或 V 型(表示逆时针转动)。给定这样一个分类序列,假设在等距离的地方旋转 90 度,生成一张纸的较长边缘的图纸。

输入:

输入包含几个测试用例,每一个都在单独的行上。 每行包含一个非空字符串 A 和 V,用于描述纸张的较长边缘。 您可以假设字符串的长度小于 200。输入文件在最后一个测试用例之后立即终止。

输出:

对于每个测试用例,生成边缘的 PostScript 绘图,命令放置在单独的行上。 使用命令“300 420 moveto”在坐标 (300, 420) 处开始绘制每幅图。 第一个回合发生在 (310, 420),使用命令“310 420 lineto”。 根据输入字符串继续顺时针或逆时针转动,使用具有适当坐标的“x y lineto”命令序列。 转折点相距 10 个单位。 不要忘记边缘的终点,并通过命令 stroke 和 showpage 完成每个测试用例。
您可以使用 gv PostScript 解释器显示此类绘图,可选地在使用 ps2ps 实用程序进行转换之后。
在这里插入图片描述

样例输入:

V
AVV

样例输出:

300 420 moveto
310 420 lineto
310 430 lineto
stroke
showpage
300 420 moveto
310 420 lineto
310 410 lineto
320 410 lineto
320 420 lineto
stroke
showpage
  相关解决方案