zoukankan      html  css  js  c++  java
  • 洛谷P1724 东风谷早苗

    题目描述

    在幻想乡,东风谷早苗是以高达控闻名的高中生宅巫女。某一天,早苗终于入手了最新款的钢达姆模型。作为最新的钢达姆,当然有了与以往不同的功能了,那就是它能够自动行走,厉害吧(好吧,我自重)。早苗的新模型可以按照输入的命令进行移动,命令包含’E’、’S’、’W’、’N’四种,分别对应四个不同的方向,依次为东、南、西、北。执行某个命令时,它会向着对应方向移动一个单位。作为新型机器人,自然不会只单单执行一个命令,它可以执行命令串。对于输入的命令串,每一秒它会按照命令行动一次。而执行完命令串最后一个命令后,会自动从头开始循环。在0时刻时早苗将钢达姆放置在了(0,0)的位置,并且输入了命令串。她想要知道T秒后钢达姆所在的位置坐标。

    向东移动,坐标改变改变为(X+1,Y);

    向南移动,坐标改变改变为(X,Y-1);

    向西移动,坐标改变改变为(X-1,Y);

    向北移动,坐标改变改变为(X,Y+1);

    输入输出格式

    输入格式:

    第1行:一个字符串,表示早苗输入的命令串,保证至少有1个命令

    第2行:一个正整数T

    输出格式:

    第1行:两个整数,表示T秒时,钢达姆的坐标

    输入输出样例

    输入样例#1:
    NSWWNSNEEWN
    12
    
    输出样例#1:
    -1 3

    说明

    对于60%的数据:T <= 500,000且命令串长度 <= 5,000

    对于100%的数据:T <= 2,000,000,000且命令串长度<= 5,000

    模拟

    屠龙宝刀点击就送

    #include <cstring>
    #include <ctype.h>
    #include <cstdio>
    
    char str[5005];
    void read(int &x)
    {
        x=0;
        char ch=getchar();
        while(!isdigit(ch)) ch=getchar();
        while(isdigit(ch)) {x=x*10+ch-'0';ch=getchar();}
    }
    int a,b,x,y,T;
    int main()
    {
        scanf("%s",str+1);
        read(T);
        int len=strlen(str+1);
        int p=T%len,k=T/len;
        for(int i=1;i<=len;i++)
        {
            switch(str[i])
            {
                case 'N':
                {
                    b+=1;
                    break;
                }
                case 'S':
                {
                    b-=1;
                    break;
                }
                case 'E':
                {
                    a+=1;
                    break;
                }
                case 'W':
                {
                    a-=1;
                    break;
                }
            }
        }
        x=a*k,y=b*k;
        for(int i=1;i<=p;i++)
        {
            switch(str[i])
            {
                case 'N':
                {
                    y+=1;
                    break;
                }
                case 'S':
                {
                    y-=1;
                    break;
                }
                case 'E':
                {
                    x+=1;
                    break;
                }
                case 'W':
                {
                    x-=1;
                    break;
                }
            }
        }
        printf("%d %d",x,y);
        return 0;
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    node
    github
    [模块] pdf转图片-pdf2image
    python 15 自定义模块 随机数 时间模块
    python 14 装饰器
    python 13 内置函数II 匿名函数 闭包
    python 12 生成器 列表推导式 内置函数I
    python 11 函数名 迭代器
    python 10 形参角度 名称空间 加载顺序
    python 09 函数参数初识
  • 原文地址:https://www.cnblogs.com/ruojisun/p/7162264.html
Copyright © 2011-2022 走看看