蓝桥杯 算法训练 粘木棍 java
时间: 2023-11-12 11:54:56 浏览: 145
蓝桥杯算法训练中的粘木棍问题可以使用Java语言进行解决。根据给定的木棍长度和数量,我们可以创建一个数组来存储每个木棍的值。首先,将数组从小到大排序,然后从后向前取出最大的m个数,并将它们放入另一个数组中,以保持排序不变。接下来,循环遍历剩余的木棍,并将最小的数与最大的数相加并减小它们之间的差距。最后,输出粘贴后最大木棍和最小木棍的差值。
示例代码如下:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] arr = new int[n];
int[] big = new int[m];
int cnt = 0;
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
int temp = m;
for (int i = n - 1; i >= 0; i--) {
big[--temp] = arr[i];
if (temp == 0) {
break;
}
}
for (int i = n - m - 1; i >= 0; i--) {
big[0] = arr[i];
Arrays.sort(big);
}
System.out.println(big[m - 1] - big[0]);
}
}
```
阅读全文