算法提高 ADV-13 最小乘积(提高型)

原创 2017年08月22日 00:24:54
问题描述
  给两组数,各n个。
  请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。
  例如两组数分别为:1 3  -5和-2 4 1

  那么对应乘积取和的最小值应为:
  (-5) * 4 + 3 * (-2) + 1 * 1 = -25
输入格式
  第一个行一个数T表示数据组数。后面每组数据,先读入一个n,接下来两行每行n个数,每个数的绝对值小于等于1000。
  n<=1000,T<=10
输出格式
  一个数表示答案。
样例输入
2
3
1 3 -5
-2 4 1
5
1 2 3 4 5
1 0 1 0 1


样例输出

-25
6
import java.util.Scanner;

public class Main{
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int t = scanner.nextInt();
		
		while(t--!=0){
			int n = scanner.nextInt();
			int [] num1 = new int[n];
			int [] num2 = new int[n];
			
			for (int i=0; i<num1.length; i++){
				num1[i] = scanner.nextInt();
			}
			
			for (int i=0; i<num2.length; i++){
				num2[i] = scanner.nextInt();
			}
			
			for (int i=0; i<num1.length-1; i++){
				for (int j=i+1; j<num1.length; j++){
					if (num1[i]>num1[j]){
						int temp = num1[i];
						num1[i] = num1[j];
						num1[j] = temp;
					}
				}
			}
			
			for (int i=0; i<num2.length-1; i++){
				for (int j=i+1; j<num2.length; j++){
					if (num2[i]<num2[j]){
						int temp = num2[i];
						num2[i] = num2[j];
						num2[j] = temp;
					}
				}
			}
			
			int result = 0;
			for (int i=0; i<n; i++){
				//System.out.println(num1[i]+"....."+num2[i]);
				result += num1[i]*num2[i];
			}
			
			System.out.println(result);
		}
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

算法提高 Torry的困惑(提高型)

问题描述   Torry从小喜爱数学。一天,老师告诉他,像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题,前10、100、1000、10000……个质数的乘积是多少呢?他把这个问题告...

2016+蓝桥杯算法训练——最小乘积(基本型)

算法训练   最小乘积(基本型) 问题描述   给两组数,各n个。   请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。   例...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

算法训练 最小乘积(基本型)

问题描述   给两组数,各n个。   请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。   例如两组数分别为:1 3  -5和-2 4 1   ...

算法训练 最小乘积(基本型)

问题描述   给两组数,各n个。   请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。   例如两组数分别为:1 3  -5和-2 4 1...

蓝桥杯 算法训练 最小乘积(基本型)

最小乘积

【ShawnZhang】带你看蓝桥杯——算法训练 最小乘积(基本型)

蓝桥杯 算法训练 最小乘积 问题描述   给两组数,各n个。   请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。   例如两组数分别为:1 3 ...

算法训练 最小乘积(基本型)

问题描述   给两组数,各n个。   请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。   例如两组数分别为:1 3  -5和-2 4 1...

蓝桥杯 ADV-202算法提高 最长公共子序列(动态规划)

问题描述   给定两个字符串,寻找这两个字串之间的最长公共子序列。 输入格式   输入两行,分别包含一个字符串,仅含有小写字母。 输出格式   最长公共子序列的长度。 样例输入 abcd...

蓝桥杯 ADV-193算法提高 盾神与条状项链

问题描述   有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n的项链。当他准备把项链首尾相接的时候,土方进来...

蓝桥杯ADV-17算法提高 统计单词数

问题描述   统计输入英文文章段落中不同单词(单词有大小写之分,  但统计时忽略大小写)各自出现的次数。 输入段落中所含单词的总数不超过100,最长单词的长度不超过20个字母. 输入格式   一...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)