关闭

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

标签: 算法训练 最小乘积基本型
138人阅读 评论(0) 收藏 举报

问题描述
  给两组数,各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

#include<stdio.h>
int main()
{
	int arr1[10],arr2[10];
	int n,m,i,j,temp,sum;
	scanf("%d",&n);
	while(n--)
	{
		sum=0;
		scanf("%d",&m);
		for(i=0;i<m;i++)
		{
			scanf("%d",&arr1[i]);
		}
		for(i=0;i<m;i++)
		{
				scanf("%d",&arr2[i]);
		}
		for(i=0;i<m-1;i++)
		{
			for(j=i+1;j<m;j++)
			{
				if(arr1[i]>arr1[j])
				{
					temp=arr1[i];
					arr1[i]=arr1[j];
					arr1[j]=temp;
				}
			}
		}
		for(i=0;i<m-1;i++)
		{
			for(j=i+1;j<m;j++)
			{
				if(arr2[i]<arr2[j])
				{
					temp=arr2[i];
					arr2[i]=arr2[j];
					arr2[j]=temp;
				}
			}
		}
		for(i=0;i<m;i++)
		{
			sum+=arr1[i]*arr2[i];
		}
		printf("%d\n",sum);
	}
	return 0;
}






1
0
查看评论

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

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

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

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

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

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

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

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

最小乘积(基本型)

算法训练 最小乘积(基本型)   时间限制:1.0s   内存限制:512.0MB     问题描述   给两组数,各n个。   请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。   例...
  • u013599426
  • u013599426
  • 2015-03-18 14:54
  • 655

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

对于此题,我的思路是十字交叉法,即最大的乘上最小的,最小的乘上最大的,然后求和得出结果。当然,在这一步必须建立在已经将所输入的数字排好序的基础上。 提交OJ也是100分。 #include #define T 1009 void queue(int b[],int m) { int i , j ...
  • hcb9291
  • hcb9291
  • 2016-03-11 21:31
  • 300

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

算法训练   最小乘积(基本型) 问题描述   给两组数,各n个。   请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。   例如两组数分别为:1 3  -5和-2 4 1   那么对应乘积取和的最小值应为: ...
  • qq_21385857
  • qq_21385857
  • 2016-03-15 20:39
  • 1954

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

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

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

算法训练 最小乘积(基本型)   时间限制:1.0s   内存限制:512.0MB      问题描述   给两组数,各n个。   请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最...
  • nanYangTangHeGuoTan
  • nanYangTangHeGuoTan
  • 2017-02-16 16:47
  • 132

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

问题描述   给两组数,各n个。  请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。  例如两组数分别为:1 3  -5和-2 4 1  那么对应乘积取和的最小值应为:  (-5) * 4 + 3 * (-2) + 1 * 1 = -25 输入格式...
  • allein_STR
  • allein_STR
  • 2017-08-15 22:27
  • 89
    个人资料
    • 访问:119588次
    • 积分:7351
    • 等级:
    • 排名:第3597名
    • 原创:608篇
    • 转载:1篇
    • 译文:0篇
    • 评论:14条
    文章分类
    最新评论