试试把OJ题意抽象成物理模型(洛谷P1007题题解)

题目要求

P1007题目链接

试试把OJ题意抽象成物理模型(洛谷P1007题题解)_第1张图片
试试把OJ题意抽象成物理模型(洛谷P1007题题解)_第2张图片

分析

这题干出的,真有毒。。。

要是有这种指挥官,也是醉了。。。

言归正传,这题其实是可以贪心求解的,但我们还可以更加666。。。

事实上,题干上面那一大篇基本在扯,关键就是一个桥,上面有一堆人,人有向左的有向右的,相向而行就转向,最后求最后一个人撤离的最长时间和最短时间。。撤离可以向左也可以向右(毕竟两端有界嘛。。)。。。。

洛谷其实就是中小学生玩的东西,怪我那会儿沉迷学习。。。咳咳。。。不过我们可以想到动量守恒那里的等质量质点完全弹性碰撞,虽说内部在乱碰,但只是转向而已,如果我们不在意具体是m1还是m2,那整体看来就相当于exchange,对吧??(我连大物都忘差不多了,菜成狗了,见谅)

洛谷那帮神人,编出了灵♂魂交换、相互穿过这种解释也是神了。。。 你们把它看成一个个完全equal的小球不就完事。。。省的讲起来那么恐怖。。。

好,这样分析以后,我们只care整体,并且每个个体都是“畅通无阻”、“单向匀速直线运动”的,OK……

那就完事了呗,纯粹的用max函数和min函数,Java的话这两个static方法在java.lang.Math类里,直接调用即可。

AC代码(Java语言描述)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int length = scanner.nextInt(), num = scanner.nextInt(), max = 0, min = 0;
        for (int i = 0; i < num; i++) {
            int temp = scanner.nextInt();
            max = Math.max(max, Math.max(length-temp+1, temp));
            min = Math.max(min, Math.min(length-temp+1, temp));
        }
        System.out.println(min + " " + max);
        scanner.close();
    }
}

你可能感兴趣的:(#,Algorithm-LuoGu)