模拟-兰顿蚂蚁-水

来源:互联网 发布:网络编辑是做什么的 编辑:程序博客网 时间:2024/06/11 10:13

题目:

蚂蚁的头部朝向为:上下左右其中一方。
  蚂蚁的移动规则十分简单:
  若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格;
  若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。

问k部后蚂蚁的位置。。

很水的一道模拟

#include<bits/stdc++.h>using namespace std;int sx[5]={0,0,-1,0,1};//左上右下int sy[5]={0,-1,0,1,0};int a[111][111];int main(){    int n,m;    int x,y,k;    char s[100];    scanf("%d%d",&n,&m);    for(int i=1;i<=n;i++)        for(int j=1;j<=m;j++)            scanf("%d",&a[i][j]);    scanf("%d%d%s%d",&x,&y,s,&k);    x++;    y++;    int ss;    if(s[0]=='U') ss=2;    if(s[0]=='D') ss=4;    if(s[0]=='L') ss=1;    if(s[0]=='R') ss=3;    for(int i=1;i<=k;i++) {        if(a[x][y]==1) {            ss=ss%4+1;        }        else {            ss=ss-1;            if(ss==0) ss=4;        }        a[x][y]=!a[x][y];        x+=sx[ss];        y+=sy[ss];    }    cout << x-1 << " " << y-1 << endl;    return 0;}


0 0
原创粉丝点击