首页 > 其他 > 详细

最小乘积

时间:2015-03-13 14:26:39      阅读:244      评论:0      收藏:0      [点我收藏+]
/**
 * 给两组数,各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);


}
}
}

最小乘积

原文:http://blog.csdn.net/a736933735/article/details/44239963

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!