zoukankan      html  css  js  c++  java
  • Ant题解

    Description:

    一根长度为L厘米的木棒上有N只蚂蚁,每只蚂蚁要么向左走,要么向右走,速度为1厘米/秒。当两只蚂蚁相撞时,他们会同时掉头(掉头时间不计)给出每只蚂蚁距离木棒左端的距离,问多少秒后,刚好所有蚂蚁都从木棒上掉下来。

    N 和 L均不超过1000

    输入第一行两个整数,分别是N和L

    接下来N行,每行先是一个字符,L或R,代表向左还是向右,然后是一个整数x,代表这个蚂蚁距离木棒左端的距离。

    样例输入:

    4 10

    R 1

    R 5

    L 3

    R 9

    样例输出:

    9


    难度:0


    Hint:

    假设你在远处观察两只蚂蚁相向而行,他们相撞后掉头,和直接穿过有什么区别?

     

    刚开始看到题目有点被吓到~.~仔细分析,会发现题目要我们求的就是最后一只蚂蚁掉下来的时间,其实就是它走过的路程长度。那么掉头与不掉头有什么区别呢?下面放张图
    掉头与否对最后一只蚂蚁走过的路程长度没有影响,是不是觉得很神奇~~要思考,假设没有提示能想到么?
    代码:
    #include<stdio.h>
    int main() {
        int N, L;
        int x, max = 0, i;
        char a;
        scanf("%d%d", &N, &L);
        for (i = 1; i <= N; i++) {  // i从0到n-1或许更为常用
            scanf("%s%d", &a, &x);
            if (a == 'R') {
                x = L - x;        // 往右走的蚂蚁,那么忽略掉头问题,走过的路程长度就是木棒长度减去距离左端的值
            }
            if (x > max) {
                max = x;
            }
        }
        printf("%d
    ", max);
        return 0;
    }

    题后反思:平时做题可以多思考给出的示例,自己来模拟这个过程,重点要动手,有时候单纯思考是没有用的~~


    (第一次写题解,慢慢积累经验~.~)

  • 相关阅读:
    C++ Primer 第五版-1.1
    C++ Primer 第五版笔记-1.0
    TouchID
    正则表达式
    duplicate symbol 错误
    第三方登录
    AFNetWorking
    IOS---通知
    左右点击--日期增减
    Xcode相关设置
  • 原文地址:https://www.cnblogs.com/xieyuanzhen-Feather/p/5046170.html
Copyright © 2011-2022 走看看