蓝桥--兰顿蚂蚁[模拟]
Posted shuoed
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥--兰顿蚂蚁[模拟]相关的知识,希望对你有一定的参考价值。
题目链接:http://lx.lanqiao.cn/problem.page?gpid=T125
题目大意:
一直蚂蚁在正方形黑白格子中,他可以向四个方向移动,定义是:如果当前在黑块中则向右移动一格,如果在白块中向左移动一格(移动的同时改变了头的方向)。
输入输出自看题目。
解题思路:
直接模拟就好,举一个例子:若当前头朝上且在黑格子中,则:头改变方向向右,同时修改当前格子的颜色,再向右移动一格蚂蚁的位置即可。
【注意修改格子后再改变其位置】
AC Code:
1 #include<stdio.h> 2 int main() { 3 int n,m,x,y,k,i,j,arr[100][100]; 4 char s; 5 while(scanf("%d%d",&n,&m)!=EOF) { 6 for(i=0; i<n; i++) 7 for(j=0; j<m; j++) 8 scanf("%d",&arr[i][j]); 9 scanf("%d %d %c %d",&x,&y,&s,&k); 10 for(; k>0; k--) { 11 switch(s) { 12 case ‘U‘: {if(arr[x][y])s=‘R‘,arr[x][y]=0,y+=1;else s=‘L‘,arr[x][y]=1,y-=1;}break; 13 case ‘D‘: {if(arr[x][y])s=‘L‘,arr[x][y]=0,y-=1;else s=‘R‘,arr[x][y]=1,y+=1;}break; 14 case ‘L‘: {if(arr[x][y])s=‘U‘,arr[x][y]=0,x-=1;else s=‘D‘,arr[x][y]=1,x+=1;}break; 15 case ‘R‘: {if(arr[x][y])s=‘D‘,arr[x][y]=0,x+=1;else s=‘U‘,arr[x][y]=1,x-=1;}break; 16 } 17 } 18 printf("%d %d\n",x,y); 19 } 20 return 0; 21 }
以上是关于蓝桥--兰顿蚂蚁[模拟]的主要内容,如果未能解决你的问题,请参考以下文章