• 最小乘积(基本型)


    问题描述

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

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

    样例输出

     

    -25
    6
    
    import java.lang.reflect.Array;
            import java.util.Arrays;
            import java.util.Scanner;
    
    public class Main {
        private Scanner scanner;
        public static void main(String[] args) {
            new Main();
        }
        public Main(){
            scanner = new Scanner(System.in);
            int t = scanner.nextInt();
            for (int i = 0;i<t;i++){
                solve();
            }
    
        }
    
        private void solve(){
            int n = scanner.nextInt();
            int [] A = new int[n];
            int [] B = new int[n];
            for (int i = 0;i<n;i++){
                A[i] = scanner.nextInt();
            }
            for (int i = 0;i<n;i++){
                B[i] = scanner.nextInt();
            }
            Arrays.sort(A);
            Arrays.sort(B);
            int sum = 0;
            for(int i = 0;i<n;i++){
                sum += A[i]*B[n-i-1];
            }
            System.out.println(sum);
        }
    
    
    
    
    }
  • 相关阅读:
    C函数调用
    C语言的起源
    使用对象流将数据以对象形式进行读写
    使用File类新建一个文本文件
    Windows下架设本机上Subversion服务器
    本地svn版本管理搭建
    ExtJs-第一讲
    找工作经历
    浅谈HashMap的实现原理(转载)
    异常
  • 原文地址:https://www.cnblogs.com/zhanghaijie/p/8544109.html
Copyright © 2020-2023  润新知