试试把OJ题意抽象成物理模型(洛谷P1007题题解)
程序员文章站
2024-03-17 21:04:10
...
题目要求
分析
这题干出的,真有毒。。。
要是有这种指挥官,也是醉了。。。
言归正传,这题其实是可以贪心求解的,但我们还可以更加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();
}
}