zoukankan      html  css  js  c++  java
  • fjnu2019第二次友谊赛 B题

    ### 题目链接 ###

    题目大意:

    给你一个 n * m 的地图以及小蛇蛇头的初始位置,告诉你它会往 上、下、左、右 四个方向走。若在走的过程中(包括结束时)会使得小蛇越界,则输出 "Game Over!" ,否则输出 "Alice!" 以及蛇头最后的坐标位置。

    分析:

    简单模拟题,只需模拟小蛇蛇头的运动方向,看它是否会在运动的过程中(包括结束时)死掉。若死掉则直接退出模拟并输出 "Game Over!" 即可。

    代码如下:

    #include<iostream>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    int n,m;
    int to[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
    char a[408][408],s[100008];
    inline int Get(char x){
        if(x=='W') return 0;
        if(x=='S') return 1;
        if(x=='A') return 2;
        if(x=='D') return 3;
    }
    int main()
    {   
        scanf("%d%d",&n,&m);
        int u,v;
        for(int i=1;i<=n;i++){
            scanf("%s",a[i]+1);
        }
        bool q=false;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                if(a[i][j]=='@'){
                    u=i,v=j;
                    a[i][j]='.';
                    q=true;
                    break;
                }
            }
            if(q) break;
        }
        q=false;
        scanf("%s",s+1);
        int len=strlen(s+1);
        for(int i=1;i<=len;i++){
            int j=Get(s[i]);
            u+=to[j][0],v+=to[j][1];
            if(u<1||u>n||v<1||v>m){q=true;break;}
        }
        if(q){
            printf("Game Over!
    ");
            return 0;
        }
        else printf("Alive! (%d,%d)
    ",u,v);
    }
  • 相关阅读:
    C# 去重处理字符大小写
    javascript 面向对象之路.2
    C# 如何批量修改集合元素的属性值?
    javascript 面向对象之路.1
    .NET 黑魔法
    C# 语言
    .NET 黑魔法
    .NET 黑魔法
    .NET 黑魔法
    lumisoft.net 邮件管理系列文章
  • 原文地址:https://www.cnblogs.com/Absofuckinglutely/p/12044396.html
Copyright © 2011-2022 走看看