
算法竞赛
滴
ReL1FE.
倒了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二分答案
二分答案是在一组有界且有序数据范围内对答案进行枚举。以期寻求到最优解。常常用来求最大值中的最小值或最小值中的最大值问题。 落谷P2678 在起点和终点之间,有 N 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。 为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走 M块岩石(不能移走起点和终点的岩石)。 输入格式: 第一行包含三个整数 L,N,M,分别表示起点到终点的原创 2020-07-11 23:21:57 · 248 阅读 · 0 评论 -
java实现C++ STL中的lower_bound( )和upper_bound( )
对于有序数组的查找经常会使用到二分法。在实际问题中我们遇到的数组中常常含有相同的元素。C++标准模板库STL中有lower_bound( )和upper_bound( )可以实现利用二分查找找到元素第一次出现的位置和最后一次出现的位置。但是java中的binarySearch()则无法实现之一要求。故需自己加以完善。 思路是使用Arrays.binarySearch(arr, num)找到num在arr中的下标时判断该位置前或后的数是否与num相同,若相同则继续二分查找。 public static int原创 2020-07-07 17:27:22 · 477 阅读 · 0 评论 -
Java竞赛小技巧:快速输入与输出
许多竞赛题对于时间和内存都有要求。而评判的标准大多是以C/C++为准,总之就是在使用java解题时当输入输出数据量一大就时常出现超时的情况。 最主要的问题还是出现在Scanner上,它太慢了。解决方法是使用StreamTokenizer和PrintWriter进行输入输出。 StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); PrintWriter out=ne原创 2020-07-07 15:22:51 · 4407 阅读 · 0 评论