欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-17 21:04:10
...

题目要求

P1007题目链接

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

分析

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

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

言归正传,这题其实是可以贪心求解的,但我们还可以更加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();
    }
}
相关标签: # 菜鸡逛洛谷