您的位置:首页 > 编程语言 > Java开发

最小乘积

2015-03-13 13:19 225 查看
/**

 * 给两组数,各n个。

 * 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。

 */

import java.util.*;

import java.io.*;

public class 最小乘积 {

public static void JianArray(Integer[] b1) {
Arrays.sort(b1);
int i = 0, n = b1.length - 1;
while (n > 2 * i) {
Integer t = b1[i];
b1[i] = b1[n - i];
b1[n - i] = t;
i++;
}
}

public static void main(String[] args) {
Scanner in = new Scanner(new BufferedInputStream(System.in));
int n = in.nextInt();
for (int i = 0; i < n; i++) {
int num = in.nextInt();
Integer[] a = new Integer[num];
Integer[] b = new Integer[num];
for (int j = 0; j < num; j++) {
a[j] = in.nextInt();
}

for (int j = 0; j < num; j++) {
b[j] = in.nextInt();
}

Arrays.sort(a);
JianArray(b);
int sum = 0;
for (int j = 0; j < num; j++) {
sum += a[j] * b[j];
}
System.out.println(sum);

}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 蓝桥杯