HDU 1033 Edge

题目不难,逆时针的时候注意,wa了好多次

wa的代码,错误 1 #include <cstdio>
 2 #include <cstring>
 3 using namespace std;
 4 struct Point{
 5     int x;int y;
 6 }p[3];
 7 int main()
 8 {
 9     char c[205];
10     while(~scanf("%s",c)){
11         printf("300 420 moveto\n310 420 lineto\n");
12
13         p[0].x=300;p[0].y=420;p[1].x=310;p[1].y=420;
14         for(int i=0;i<strlen(c);i++){
15             if(c[i]==‘A‘){
16                 if(p[i%3].x==p[i%3+1].x){
17                     p[i%3+2].y=p[i%3+1].y;
18                     p[i%3+2].x=p[i%3+1].x+p[i%3+1].y-p[i%3].y;
19                 }
20                 else{
21                     p[i%3+2].x=p[i%3+1].x;
22                     p[i%3+2].y=p[i%3+1].y-p[i%3+1].x+p[i%3].x;
23                 }
24             }
25             else if(c[i]==‘V‘){
26                 if(p[i%3].x==p[i%3+1].x){
27                     p[i%3+2].y=p[i%3+1].y;
28                     p[i%3+2].x=p[i%3+1].x-p[i%3+1].y+p[i%3].y;
29                 }
30                 else{
31                     p[i%3+2].x=p[i%3+1].x;
32                     p[i%3+2].y=p[i%3+1].y+p[i%3+1].x-p[i%3].x;
33                 }
34             }
35             printf("%d %d lineto\n",p[i%3+2].x,p[i%3+2].y);
36         }
37
38         printf("stroke\nshowpage\n");
39     }
40
41     return 0;
42 }

附ac代码

 1 #include <cstdio>
 2 #include <cstring>
 3 using namespace std;
 4
 5 int main()
 6 {
 7     char c[205];
 8     while(~scanf("%s",c)){
 9         printf("300 420 moveto\n310 420 lineto\n");
10         int x=310,y=420,len=0;
11         for(int i=0;i<strlen(c);i++){
12
13             if(c[i]==‘V‘){
14
15                 switch(len){
16                     case 0:y+=10;break;
17                     case 1:x+=10;break;
18                     case 2:y-=10;break;
19                     case 3:x-=10;break;
20                 }
21                 len=(len+3)%4;//
22             }
23             else if(c[i]==‘A‘){
24                 switch(len){
25                     case 2:y+=10;break;
26                     case 1:x-=10;break;
27                     case 0:y-=10;break;
28                     case 3:x+=10;break;
29                 }
30                 len=(len+1)%4;
31             }
32             printf("%d %d lineto\n",x,y);
33         }
34
35         printf("stroke\nshowpage\n");
36     }
37
38     return 0;
39 }
时间: 2024-08-27 07:57:33

HDU 1033 Edge的相关文章

杭电 HDU 1033 Edge

Edge Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2251    Accepted Submission(s): 1439 Problem Description For products that are wrapped in small packings it is necessary that the sheet of p

HDU 1033

好久没动弹了..动弹一下.. 题目 http://acm.hdu.edu.cn/showproblem.php?pid=1033 题意很简单,起点在(300,420),每次移动10单位,第一次向右移,给你一串字符,若为A则顺时针,为V则逆时针. 这里可以用仿射变换中的旋转变换, 于是可以大大减少代码量. #include<cstdio> char s[205]; int x,y,dx,dy,t,i; int main(){ while(scanf("%s",s)!=EOF)

HDUOJ 1033 Edge

看到百分之50多的AC率,但这道题看得我一头雾水...看了半天结果就是一道大水题.模拟就行了. 1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 using namespace std; 5 6 int main() 7 { 8 char command[201]; 9 int len, x, y, i, cur_direction; //cur_direction: 1 means n

转载:hdu 题目分类 (侵删)

转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092.1093. 1094.1095.1096.1097.1098.1106.1108.1157.116

HDU 6203 ping ping ping [LCA,贪心,DFS序,BIT(树状数组)]

题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=6203] 题意 :给出一棵树,如果(a,b)路径上有坏点,那么(a,b)之间不联通,给出一些不联通的点对,然后判断最少有多少个坏点. 题解 :求每个点对的LCA,然后根据LCA的深度排序.从LCA最深的点对开始,如果a或者b点已经有点被标记了,那么continue,否者标记(a,b)LCA的子树每个顶点加1. #include<Bits/stdc++.h> using namespace std;

hdu 6166 Senior Pan

地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6166 题目: Senior Pan Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 245    Accepted Submission(s): 71 Problem Description Senior Pan fails i

畅通project续HDU杭电1874【dijkstra算法 || SPFA】

http://acm.hdu.edu.cn/showproblem.php?pid=1874 Problem Description 某省自从实行了非常多年的畅通project计划后.最终修建了非常多路.只是路多了也不好,每次要从一个城镇到还有一个城镇时,都有很多种道路方案能够选择,而某些方案要比还有一些方案行走的距离要短非常多.这让行人非常困扰. 如今,已知起点和终点,请你计算出要从起点到终点.最短须要行走多少距离. Input 本题目包括多组数据.请处理到文件结束. 每组数据第一行包括两个正

hdu 1565 方格取数(2)(网络流之最大点权独立集)

题目链接:hdu 1565 方格取数(2) 题意: 有一个n*m的方格,每个方格有一个数,现在让你选一些数.使得和最大. 选的数不能有相邻的. 题解: 我们知道对于普通二分图来说,最大独立点集 + 最小点覆盖集 = 总点数,类似的,对于有权的二分图来说,有: 最大点权独立集 + 最小点权覆盖集 = 总点权和, 这个题很明显是要求 最大点权独立集 ,现在 总点权 已知,我们只要求出来 最小点权覆盖集 就好了,我们可以这样建图, 1,对矩阵中的点进行黑白着色(相邻的点颜色不同),从源点向黑色的点连一

HDU 1532

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532 题意: 三叶草是这个人的最喜欢的植物,结果下雨淹没了他家里,要排水,一个点到一个点的排水速度已知,求最大排水能力. 我仔细看了题面,好像是没有具体说明起点和终点. 所以我用最大流,枚举起点终点,并且清流,当然我知道还是可能超时的. 看了一下网上的解答,硬说起点是 1 ,终点 m,我也是很迷啊~~~ 1 #include <bits/stdc++.h> 2 3 using namespace