[兰顿蚂蚁]有感--诡异又不失优雅的蚂蚁

今天日常刷题的过程中遇到了这样一个问题:

 这个题主要难点在于如何模拟右转和左转,以及如何把字符URDL对应到点的坐标上。

解题思路即代码:

#include<bits/stdc++.h>

using namespace std;
int n,m;
int a[110][110];
int x,y,k;
char ss;//表示蚂蚁头的朝向
int dx[]={-1,0,1,0};
int dy[]={0,1,0,-1};//偏移量数组
int main(){
    cin>>n>>m;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>a[i][j];
        }
    }
    cin>>x>>y>>ss>>k;
    char Map[]={'U','R','D','L'};
    int s=0;
    while(Map[s]!=ss){//找到当前的朝向对应的数字
        s++;
    }
    for(int i=0;i<k;i++){//走k步
        s=( s + (a[x][y]==1?1:-1) + 4 ) % 4;//s表示的是方向 0,1,2,3   若黑格,向右转;若白格,向左转 方向遵循上右下左四种情况  加上4这个偏移量是为了防止0-1这种出现负数的情况
        a[x][y]=!a[x][y];//黑格遍白格,白格变黑格
        x+=dx[s],y+=dy[s];//dx[s]和dy[s]合起来表示当前方向的偏移量
    }
    cout<<x<<" "<<y<<endl;
    return 0;
}

初始,蚂蚁的运行轨迹看起来是混沌的,不可预测的,但是当这只蚂蚁超过一万步之后i,我们发现它居然开始沿着一条直线运行。如此诡异又不失优雅的蚂蚁。。。。。。

        

主要是看完整道题,突然想到这只小小的蚂蚁反映出来的不正是我们每个人的生活吗?每个人都按照自己很简单的游戏规则进行生活,就像这只蚂蚁一样,不过过程又不相同,但最终都会走上这条叫做命运的高速公路。每个人的成长经历不相同,但是我们最终也会走上我们的”高速公路“,无一例外。

不知道自己的所谓努力是否真的有用,不知道自己的所谓坚持还能持续多久。希望自己变得更加强大,希望自己不要假努力。因为就像某些事,你永远没有重来一遍的机会了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值