1. 程式人生 > >HDU 1033

HDU 1033

clu mage %d mov 起點 print 題意 bsp images

好久沒動彈了。。動彈一下。。

題目 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){
        x=300;y=420;dx=10;dy=0;
        printf("%d %d moveto\n
",x,y); printf("%d %d lineto\n",x+=dx,y+=dy); for(i=0;s[i]!=0;i++){ if(s[i]==A){t=dy;dy=-dx;dx=t;} else {t=-dy;dy=dx;dx=t;} printf("%d %d lineto\n",x+=dx,y+=dy); } printf("stroke\nshowpage\n"); } }

HDU 1033