Edge

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4214    Accepted Submission(s): 2600

Problem Description
For
products that are wrapped in small packings it is necessary that the
sheet of paper containing the directions for use is folded until its
size becomes small enough. We assume that a sheet of paper is
rectangular and only folded along lines parallel to its initially
shorter edge. The act of folding along such a line, however, can be
performed in two directions: either the surface on the top of the sheet
is brought together, or the surface on its bottom. In both cases the two
parts of the rectangle that are separated by the folding line are laid
together neatly and we ignore any differences in thickness of the
resulting folded sheet.
After several such folding steps have been
performed we may unfold the sheet again and take a look at its longer
edge holding the sheet so that it appears as a one-dimensional curve,
actually a concatenation of line segments. If we move along this curve
in a fixed direction we can classify every place where the sheet was
folded as either type A meaning a clockwise turn or type V meaning a
counter-clockwise turn. Given such a sequence of classifications,
produce a drawing of the longer edge of the sheet assuming 90 degree
turns at equidistant places.
 
Input
The
input contains several test cases, each on a separate line. Each line
contains a nonempty string of characters A and V describing the longer
edge of the sheet. You may assume that the length of the string is less
than 200. The input file terminates immediately after the last test
case.
 
Output
For
each test case generate a PostScript drawing of the edge with commands
placed on separate lines. Start every drawing at the coordinates (300,
420) with the command "300 420 moveto". The first turn occurs at (310,
420) using the command "310 420 lineto". Continue with clockwise or
counter-clockwise turns according to the input string, using a sequence
of "x y lineto" commands with the appropriate coordinates. The turning
points are separated at a distance of 10 units. Do not forget the end
point of the edge and finish each test case by the commands stroke and
showpage.

You may display such drawings with the gv PostScript interpreter, optionally after a conversion using the ps2ps utility.

 
Sample Input
V
AVV
 
Sample Output
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
 
Source
[题意]:给定起点(300,420)和初始方向→,给你一串字符串,A代表以此点为参照顺时针90°,V代表逆时针90°.求路径经过的点
[分析]:设置方向和坐标
[代码]:

#include<bits/stdc++.h>
using namespace std; int main()
{
char s[];
while(cin>>s){
printf("300 420 moveto\n310 420 lineto\n");
int dir=,x=,y=;//1→ -1← 2↑ -2↓
for(int i=;i<strlen(s);i++)
{
switch(dir)//每次转弯后走10个单位
{
case ://→ V=左转 A=右转
if(s[i]=='V') dir=,y+=;
else dir=-,y-=;
break;
case ://↑
if(s[i]=='V') dir=-,x-=;
else dir=,x+=;
break;
case -:
if(s[i]=='V') dir=-,y-=;
else dir=,y+=;
break;
case -:
if(s[i]=='V') dir=,x+=;
else dir=-,x-=;
break;
}
printf("%d %d lineto\n",x,y);
}
printf("stroke\nshowpage\n");
}
return ;
}

模拟

HDU 1033 Edge[地图型模拟/给你一串字符串,A代表以此点为参照顺时针90°,V代表逆时针90°]的更多相关文章

  1. HDU - 1033 Edge 【模拟】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1033 题意 给定一个起始点 300 420 走的第一步是 310 420 下面的每一步 都由 输入决定 ...

  2. HDU 1033 - Edge

    题目很水 然翻译感人 顺时针或者逆时针走,输出坐标 #include <iostream> using namespace std; ]; int p; ]={,,,-,}; ]={,,- ...

  3. HDU 1033

    http://acm.hdu.edu.cn/showproblem.php?pid=1033 这题的题干说的很绕,结合样例不难理解题意,走折线,A代表顺时针,V代表逆时针,给一个包含A和V的字符串,输 ...

  4. HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011亚洲北京赛区网络赛)

    HDU 4041 Eliminate Witches! (模拟题 ACM ICPC 2011 亚洲北京赛区网络赛题目) Eliminate Witches! Time Limit: 2000/1000 ...

  5. mysql学习1:数据类型:数字型,日期和时间,字符串类型(总结)

    mysql数据类型:数字型,日期和时间,字符串类型 摘要 MySQL中定义数据字段的类型对数据库的优化是非常重要的: MySQL支持多种类型,大致可以分为三类,如下. 数字类型 整数:tinyint. ...

  6. HDU 5442 后缀自动机(从环字符串选定一个位置 , 时针或顺时针走一遍,希望得到字典序最大)

    http://acm.hdu.edu.cn/showproblem.php?pid=5442 题目大意: 给定一个字符串,可理解成环,然后选定一位置,逆时针或顺时针走一遍,希望得到字典序最大,如果同样 ...

  7. Hdu 3294 Girls' research (manacher 最长回文串)

    题目链接: Hdu 3294  Girls' research 题目描述: 给出一串字符串代表暗码,暗码字符是通过明码循环移位得到的,比如给定b,就有b == a,c == b,d == c,.... ...

  8. HDU 1033(坐标移动 模拟)

    题意是说有一点从(300,410)的位置出发,向右移动到(310,410)后开始转向,A 表示向顺时针转,V 表示向逆时针转,每次转向后沿当前方向前进 10 个单位, 输出其坐标,再补充一点格式上的东 ...

  9. POJ 3344 &amp; HDU 2414 Chessboard Dance(模拟)

    题目链接: PKU:http://poj.org/problem? id=3344 HDU:http://acm.hdu.edu.cn/showproblem.php?pid=2414 Descrip ...

随机推荐

  1. 3、python中的字符串

    一.前言 字符串是python中重要的数据类型.字符串就是一段文本,在python中用引号来标示. 二.字符串分类 字符串根据使用场景不同,一共分成3类: (1)单引号.双引号创建的单行字符串: 在单 ...

  2. Hive 分析函数lead、lag实例应用

    Hive的分析函数又叫窗口函数,在oracle中就有这样的分析函数,主要用来做数据统计分析的. Lag和Lead分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag)和后N行的数据(Lead) ...

  3. vba中ListBox控件的使用

    给ListBox添加内容 If CheckBox8 = True Then---------------------------checkbox控件被选中 For i = 0 To ListBox1. ...

  4. C#操作XML配置文件

    代码为C#操作xml配置文件的范例类,函数SetValue用于向配置文件写入一个值,GetValue用于根据Key获取相应值。这种方法的配置文件不需要手动创建,程序在运行后会自动处理创建。 注意:1. ...

  5. Java之OutOfMemoryError简单分析

    Java之OutOfMemoryError简单分析 最近编码遇到了Java内存溢出的问题,所以就想顺便总结一下几种导致Java内存溢出的栗子,以及碰到Java内存溢出要如何去解决. Java堆溢出 J ...

  6. IOS开发---菜鸟学习之路--(十八)-利用代理实现向上一级页面传递数据

    其实我一开始是想实现微信的修改个人信息那样的效果 就是点击昵称,然后跳转到另外一个页面输入信息 但是细想发现微信的话应该是修改完一个信息后就保存了 而我做的项目可能需要输入多个数据之后再点击提交的. ...

  7. 【Reverse Linked List II】cpp

    题目: Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1- ...

  8. 从xml文件中绑定数据到DropDownList控件上

    参考了2篇文章: http://www.cnblogs.com/JuneZhang/archive/2010/11/23/1885671.html http://blog.sina.com.cn/s/ ...

  9. STL之vector使用简介

    Vector成员函数 函数 表述 c.assign(beg,end)c.assign(n,elem) 将[beg; end)区间中的数据赋值给c.将n个elem的拷贝赋值给c. c.at(idx) 传 ...

  10. 动态规划--找零钱 coin change

    来自http://www.geeksforgeeks.org/dynamic-programming-set-7-coin-change/ 对于整数N,找出N的所有零钱的表示.零钱可以用S={s1,s ...