解题思路:
蠢方法:所有情况都写一个判断,但是很简单明了

注意事项:





参考代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void)
{
    int m,n,x,y,k,i,j;
    int ant[102][102],count1=0;
    char s;

    memset(ant,0,sizeof(ant));
    scanf("%d %d",&m,&n);
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        {
            scanf("%d",&ant[i][j]);
        }
    }
    scanf("%d %d %c %d",&x,&y,&s,&k);

    while(1)
    {
        if(ant[x][y]==0&&s=='U')
        {
            ant[x][y] = 1;
            s = 'L';
            y-=1;
            count1++;
            if(count1==k)
                break;
        }
        if(ant[x][y]==0&&s=='L')
        {
            ant[x][y] = 1;
            s = 'D';
            x+=1;
            count1++;
            if(count1==k)
                break;
        }
        if(ant[x][y]==0&&s=='D')
        {
            ant[x][y] = 1;
            s = 'R';
            y+=1;
            count1++;
            if(count1==k)
                break;
        }
        if(ant[x][y]==0&&s=='R')
        {
            ant[x][y] = 1;
            s = 'U';
            x-=1;
            count1++;
            if(count1==k)
                break;
        }
        if(ant[x][y]==1&&s=='U')
        {
            ant[x][y] = 0;
            s = 'R';
            y+=1;
            count1++;
            if(count1==k)
                break;
        }
        if(ant[x][y]==1&&s=='L')
        {
            ant[x][y] = 0;
            s = 'U';
            x-=1;
            count1++;
            if(count1==k)
                break;
        }
        if(ant[x][y]==1&&s=='D')
        {
            ant[x][y] = 0;
            s = 'L';
            y-=1;
            count1++;
            if(count1==k)
                break;
        }
        if(ant[x][y]==1&&s=='R')
        {
            ant[x][y] = 0;
            s = 'D';
            x+=1;
            count1++;
            if(count1==k)
                break;
        }
    }
    printf("%d %d\n",x,y);
    return 0;
}


    

点赞(5)
 

0.0分

3 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 5 条评论

寒露 4年前 回复TA
@木木ccc @1332427275 看错了,是左边
寒露 4年前 回复TA
@木木ccc @1332427275 应该向右
YuUuUGoD 4年前 回复TA
@木木ccc 向下然后右转不就是顺时针转么,所以就是向左了呀
木木ccc 6年前 回复TA
明白了
木木ccc 6年前 回复TA
蚂蚁在黑格中头向下,为什么转完之后头向左了呢