zoukankan      html  css  js  c++  java
  • 蓝桥--兰顿蚂蚁[模拟]

    题目链接: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
    ",x,y);
    19     }
    20     return 0;
    21 }
  • 相关阅读:
    Java循环结构
    Java正则表达式
    Java日期时间
    Java如何输入数据
    Java数组
    Java StringBuffer和StringBuilder类
    Java String类
    Java Character类
    Java Number&Math类
    python之二维码生成
  • 原文地址:https://www.cnblogs.com/A--Q/p/6421651.html
Copyright © 2011-2022 走看看