4452 模拟水题

Posted mthoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4452 模拟水题相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;

int abs(int a)
{
    return a>0?

a:(-a+1); } int main() { int n,i,j,s1,t1,s2,t2,m; char first[5],second[5]; while(~scanf("%d",&n),n) { scanf("%s",first); scanf("%d%d",&s1,&t1); scanf("%s%d%d",second,&s2,&t2); scanf("%d",&m); int fx=1,fy=1,sx=n,sy=n; for(i=1;i<=m;i++) { if(first[0]==‘W‘) { if(fy-1<s1) { fy=s1-fy+2; first[0]=‘E‘; } else fy-=s1; } else if(first[0]==‘E‘) { if(n-fy<s1) { fy=2*n-s1-fy; first[0]=‘W‘; } else fy+=s1; } else if(first[0]==‘N‘) { if(fx-1<s1) { fx=s1-fx+2; first[0]=‘S‘; } else fx-=s1; } else { if(n-fx<s1) { fx=2*n-s1-fx; first[0]=‘N‘; } else fx+=s1; } if(second[0]==‘W‘) { if(sy-1<s2) { sy=s2-sy+2; second[0]=‘E‘; } else sy-=s2; } else if(second[0]==‘E‘) { if(n-sy<s2) { sy=2*n-s2-sy; second[0]=‘W‘; } else sy+=s2; } else if(second[0]==‘N‘) { if(sx-1<s2) { sx=s2-sx+2; second[0]=‘S‘; } else sx-=s2; } else { if(n-sx<s2) { sx=2*n-s2-sx; second[0]=‘N‘; } else sx+=s2; } if(fx==sx&&fy==sy) { char p=first[0]; first[0]=second[0]; second[0]=p; } else { if(i%t1==0) { if(first[0]==‘W‘) first[0]=‘S‘; else if(first[0]==‘E‘) first[0]=‘N‘; else if(first[0]==‘N‘) first[0]=‘W‘; else first[0]=‘E‘; } if(i%t2==0) { if(second[0]==‘W‘) second[0]=‘S‘; else if(second[0]==‘E‘) second[0]=‘N‘; else if(second[0]==‘N‘) second[0]=‘W‘; else second[0]=‘E‘; } } } printf("%d %d\n",fx,fy); printf("%d %d\n",sx,sy); } return 0; }

以上是关于4452 模拟水题的主要内容,如果未能解决你的问题,请参考以下文章

1200 To and Fro 水题 / 模拟

Gym 100851E Easy Problemset (水题,模拟)

CodeForces 723B Text Document Analysis (水题模拟)

CodeForces 731B Coupons and Discounts (水题模拟)

CodeForces 686A Free Ice Cream (水题模拟)

HDU 6213 Chinese Zodiac 模拟/水题/生肖