zcmu 1901: Problem E: Logo
来源:互联网 发布:linux启动mysql 编辑:程序博客网 时间:2024/06/07 15:19
http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=1901
1901: Problem E: Logo
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 130 Solved: 37
[Submit][Status][Web Board]
Description
Problem E: Logo
Logo is a programming language built around a turtle. Commands in the language cause the turtle to move. The turtle has a pen attached to it. As the turtle moves, it draw lines on the page. The turtle can be programmed to draw interesting pictures.
We are interested in making the turtle draw a picture, then return to the point that it started from. For example, we could give the turtle the following program:
fd 100 lt 120 fd 100 lt 120 fd 100
The command fd causes the turtle to move forward by the specified number of units. The command lt causes the turtle to turn left by the specified number of degrees. Thus the above commands cause the turtle to draw an equilateral triangle with sides 100 units long. Notice that after executing the commands, the turtle ends up in the same place as it started. The turtle understands two additional commands. The command bk causes the turtle to move backward by the specified number of units. The command rt causes the turtle to turn right by the specified number of degrees.
After executing many commands, the turtle can get lost, far away from its starting position. Your task is to determine the straight-line distance from the turtle's position at the end of its journey back to the position that it started from.
Input
The first line of input contains one integer specifying the number of test cases to follow. Each test case starts with a line containing one integer, the number of commands to follow. The commands follow, one on each line. Each test case will contain no more than 1000 commands.
Output
For each test case, output a line containing a single integer, the distance rounded to the nearest unit.
Sample Input
Sample Output
0
题目大意是给小乌龟F个指令(fd前行,bk后退,lt左转,rt右转),求最后小乌龟与起点的距离
解法:模拟小乌龟的行动
#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#define maxn 2222#define pi 3.141592653589793using namespace std;struct zb{ double x,y; double fxx,fxy;};int T,F;double d,d1=0;zb end;char s[3];void move(){ if(s[0]=='f'){ end.x+=end.fxx*d; end.y+=end.fxy*d; } if(s[0]=='b'){ end.x-=end.fxx*d; end.y-=end.fxy*d; } if(s[0]=='l'){ d=d+d1; d1=d; d=(180-d)*pi/180; end.fxx=-cos(d); end.fxy=sin(d); } if(s[0]=='r'){ d=d1-d; d1=d; d=(180-d)*pi/180; end.fxx=-cos(d); end.fxy=sin(d); }}int main(){ scanf("%d",&T); while(T--) { d1=0; end.x=end.y=0; end.fxx=1,end.fxy=0; scanf("%d",&F); while(F--) { scanf("%s%lf",s,&d); move(); // printf("%lf %lf\n",end.x,end.y); } printf("%.0lf\n",sqrt(end.x*end.x+end.y*end.y)); } return 0;}
- zcmu 1901: Problem E: Logo
- ZCMU-Problem E - Ones
- ZCMU-校赛E-1780
- ZCMU-Problem C - Sumsets
- zcmu-1901
- ZCMU-1517-A Sorting Problem
- Problem E
- Problem E
- Problem E
- Problem E
- Problem E
- Problem E
- Problem E
- Problem E
- problem E
- Problem E
- Problem E
- Problem E
- CGAffineTransform链式调用的问题
- oracle 行转列
- spark-基础框架
- 在共享DLL中使用MFC 和在静态库中使用MFC区别
- 1024. Palindromic Number (25)
- zcmu 1901: Problem E: Logo
- [Trie树] BZOJ3689: 异或之
- MFC OSG中文件显示窗口不全,无法满屏的情况
- Glide加载圆形图片(新版本4.0.0-RC1)
- Hive数据库
- centos 下 PostgreSql安装
- 【剑指Offer】面试题33:把数组排成最小的数
- 从浏览器到服务器 网站是如何工作的
- unsigned int与int相加如何转化问题