蓝桥杯 最小乘积【基本型】(java题解)

原创 2016年06月02日 10:09:47

问题描述
  给两组数,各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.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int T = in.nextInt();
        if(T>1000) 
            System.exit(0);
        while(T>0) {
            int n = in.nextInt();
            int[] a = new int[n];
            int[] b = new int[n];
            for(int i=0;i<n;i++) {
                a[i] = in.nextInt();
            }
            for(int i=0;i<n;i++) {
                b[i] = in.nextInt();
            }

            int k1 = 0;
            int k2 = 0;
            for(int i=0;i<n;i++) {
                for(int j=i+1;j<n;j++) {
                    if(a[j]<a[i]) {
                        k1 = a[i];
                        a[i] = a[j];
                        a[j] = k1;
                    }
                }
            }

            for(int i=0;i<n;i++) {
                for(int j=i+1;j<n;j++) {
                    if(b[j]>b[i]) {
                        k2 = b[i];
                        b[i] = b[j];
                        b[j] = k2;
                    }
                }
            }


            int sum = 0;
            for(int i=0;i<n;i++) {
                sum += a[i]*b[i];
            }
            System.out.println(sum);
            T--;

        }
        in.close();
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

蓝桥杯 最小乘积(基本型)

算法训练 最小乘积(基本型)   时间限制:1.0s   内存限制:512.0MB      问题描述   给两组数,各n个。   请调整每组数的排列顺序,使得两组数...
  • qq_30076791
  • qq_30076791
  • 2016年01月09日 16:16
  • 647

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

算法训练 最小乘积(基本型)   时间限制:1.0s   内存限制:512.0MB      问题描述   给两组数,各n个。   请调整每组数的排列顺序,使得两组数...
  • wangluoershixiong
  • wangluoershixiong
  • 2015年01月08日 13:16
  • 1077

蓝桥杯:最小乘积(基本型)

题目: 给两组数,各n个。   请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。   例如两组数分别为:1 3  -5和-2 4 1   那...
  • JDOUN
  • JDOUN
  • 2016年05月12日 21:09
  • 567

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

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

最小乘积(基本型)

算法训练 最小乘积(基本型)   时间限制:1.0s   内存限制:512.0MB     问题描述   给两组数,各n个。   请调整每组数的排列顺序,使得两组数据相同下标元素对...
  • u013599426
  • u013599426
  • 2015年03月18日 14:54
  • 653

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

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

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

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

蓝桥杯 - 最小乘积(基本型)

算法训练 最小乘积(基本型) 时间限制:1.0s     内存限制:512.0MB 问题描述  给两组数,各n个。   请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最...
  • violet_echo_0908
  • violet_echo_0908
  • 2016年01月30日 23:33
  • 370

蓝桥杯——最小乘积(基本型)

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

关于蓝桥OJ算法训练之最小乘积(基本型)

对于此题,我的思路是十字交叉法,即最大的乘上最小的,最小的乘上最大的,然后求和得出结果。当然,在这一步必须建立在已经将所输入的数字排好序的基础上。 提交OJ也是100分。 #include #defi...
  • hcb9291
  • hcb9291
  • 2016年03月11日 21:31
  • 299
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:蓝桥杯 最小乘积【基本型】(java题解)
举报原因:
原因补充:

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