首页 > 代码库 > 蓝桥--兰顿蚂蚁[模拟]
蓝桥--兰顿蚂蚁[模拟]
题目链接: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 }
蓝桥--兰顿蚂蚁[模拟]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。