• hdu 4452


    今天模拟赛的一个模拟题;

    每次看到这种题就感觉很繁琐;

    这次静下心来写写,感觉还不错!就是很多错误,浪费了一点时间;

    代码:

     1 #include<cstdio>
     2 #include<cstring>
     3 using namespace std;
     4 
     5 int d[4][2]= {{1,0},{0,1},{-1,0},{0,-1}};
     6 
     7 struct run
     8 {
     9     int x,y;
    10     int s,p,d;
    11 } r[2];
    12 int t,n;
    13 void go()
    14 {
    15     bool flag;
    16     for(int i=0; i<t; i++)
    17     {
    18         flag=1;
    19         if(r[0].x==r[1].x&&r[0].y==r[1].y)
    20         {
    21             flag=0;
    22             int a=r[0].d;
    23             r[0].d=r[1].d;
    24             r[1].d=a;
    25         }
    26         for(int j=0; j<2; j++)
    27         {
    28             if(i!=0&&(i%r[j].p==0)&&flag)
    29                 r[j].d=(r[j].d+3)%4;
    30             r[j].x=r[j].x+d[r[j].d][0]*r[j].s;
    31             if(r[j].x<=0)
    32             {
    33                 r[j].x=(-r[j].x)+2;
    34                 r[j].d=0;
    35             }
    36             if(r[j].x>n)
    37             {
    38                 r[j].x=n-(r[j].x-n);
    39                 r[j].d=2;
    40             }
    41             r[j].y=r[j].y+d[r[j].d][1]*r[j].s;
    42             if(r[j].y<=0)
    43             {
    44                 r[j].y=(-r[j].y)+2;
    45                 r[j].d=1;
    46             }
    47             if(r[j].y>n)
    48             {
    49                 r[j].y=n-(r[j].y-n);
    50                 r[j].d=3;
    51             }
    52         }
    53     }
    54 }
    55 char s[3];
    56 int main()
    57 {
    58     while(scanf("%d",&n)&&n)
    59     {
    60         for(int i=0; i<2; i++)
    61         {
    62             scanf("%s",&s);
    63             if(s[0]=='E') r[i].d=0;
    64             else if(s[0]=='S') r[i].d=1;
    65             else if(s[0]=='W')r[i].d=2;
    66             else if(s[0]=='N')r[i].d=3;
    67             scanf("%d%d",&r[i].s,&r[i].p);
    68         }
    69         r[0].x=1,r[0].y=1;
    70         r[1].x=n,r[1].y=n;
    71         scanf("%d",&t);
    72         go();
    73         for(int i=0; i<2; i++)
    74             printf("%d %d
    ",r[i].y,r[i].x);
    75     }
    76     return 0;
    77 }
    View Code
  • 相关阅读:
    python 字符串中的%s与format
    python中的virtualenv是干嘛的?
    grep 与 find 简单命令
    git merge 和 git rebase的区别
    git stash的用法
    git push的用法
    git pull与git fetch的区别
    辟谣平台 踩坑记(一)
    微信JS-SDK开发 入门指南
    linux 写U盘出现的问题
  • 原文地址:https://www.cnblogs.com/yours1103/p/3329292.html
Copyright © 2020-2023  润新知