算法训练——最小乘积——基本型

//最小乘积(基本型)
#include<stdio.h>
#include<stdlib.h>
#define MAXN 100
int comp_a2(const void*a,const void*b)//用来做比较的函数。
{
    return *(int*)a - *(int*)b;
}
int comp_a1(const void*a,const void*b)//用来做比较的函数。
{
    return *(int*)b - *(int*)a; //降序
}
int main(){
	int T,n,i,minProduct;
	int a1[MAXN],a2[MAXN];
	scanf("%d",&T);
	while(T>0){
		minProduct = 0;
		scanf("%d",&n);
		for(i=0;i<n;i++)
			scanf("%d",&a1[i]);
		//对数组a1进行逆序排序
		qsort(a1,n,sizeof(int),comp_a1);
		for(i=0;i<n;i++)
			scanf("%d",&a2[i]);
		//对数组a2进行升序排序
		qsort(a2,n,sizeof(int),comp_a2);
		for(i=0;i<n;i++)
			minProduct += a1[i]*a2[i];
		printf("%d",minProduct);
	}
	return 0;
}

  

原文地址:https://www.cnblogs.com/Hqx-curiosity/p/12237413.html

时间: 2024-11-06 23:26:05

算法训练——最小乘积——基本型的相关文章

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

算法训练 最小乘积(基本型)                         一个数组从大到小排列,一个数组从小到大,相乘起来最小 时间限制:1.0s   内存限制:512.0MB 问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最小值. 例如两组数分别为:1 3 -5和-2 4 1 那么对应乘积取和的最小值应为: (-5) * 4 + 3 * (-2) + 1 * 1 = -25 输入格式 第一个行一个数T表示数据组数.

蓝桥杯 算法训练 最小乘积(基本型) (水题,排序)

算法训练 最小乘积(基本型) 时间限制:1.0s   内存限制:512.0MB 问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最小值. 例如两组数分别为:1 3 -5和-2 4 1 那么对应乘积取和的最小值应为: (-5) * 4 + 3 * (-2) + 1 * 1 = -25 输入格式 第一个行一个数T表示数据组数.后面每组数据,先读入一个n,接下来两行每行n个数,每个数的绝对值小于等于1000. n<=8,T<=

蓝桥杯软件大赛练习系统——算法训练 最小乘积(基本型)

************************************************************************ * 精品书籍推荐:<算法竞赛入门经典> * 该书对于ACMer几乎人手一本,所以在这里倾力推荐,读完这本书,我们就可以开始我们的算法征程了!!! * 看完上面那本书,还有一本它的升级版:<算法竞赛入门经典:训练指南> * 再读完这本书,你就超神了!!! *******************************************

算法训练 最小乘积

时间限制:1.0s   内存限制:512.0MB 问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最小值. 例如两组数分别为:1 3 -5和-2 4 1 那么对应乘积取和的最小值应为: (-5) * 4 + 3 * (-2) + 1 * 1 = -25 输入格式 第一个行一个数T表示数据组数.后面每组数据,先读入一个n,接下来两行每行n个数,每个数的绝对值小于等于1000. n<=8,T<=1000 输出格式 一个数表示

ALGO-53 最小乘积(基本型)

算法训练 最小乘积(基本型) 时间限制:1.0s   内存限制:512.0MB 问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最小值. 例如两组数分别为:1 3 -5和-2 4 1 那么对应乘积取和的最小值应为: (-5) * 4 + 3 * (-2) + 1 * 1 = -25 输入格式 第一个行一个数T表示数据组数.后面每组数据,先读入一个n,接下来两行每行n个数,每个数的绝对值小于等于1000. n<=8,T<=

蓝桥杯——算法训练之乘积最大

问题描述 今年是国际数学联盟确定的"2000--世界数学年",又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加.活动中,主持人给所有参加活动的选手出了这样一道题目: 设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大. 同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子: 有一个数字串:312, 当N=3,K=1时

C语言 &#183; 最小乘积(基本型)

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

算法笔记_062:蓝桥杯练习 最小乘积(基本型)(Java)

目录 1 问题描述 2 解决方案   1 问题描述 问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最小值. 例如两组数分别为:1 3 -5和-2 4 1 那么对应乘积取和的最小值应为: (-5) * 4 + 3 * (-2) + 1 * 1 = -25 输入格式 第一个行一个数T表示数据组数.后面每组数据,先读入一个n,接下来两行每行n个数,每个数的绝对值小于等于1000. n<=8,T<=1000 输出格式 一个数表

算法训练 阿尔法乘积

时间限制:1.0s   内存限制:512.0MB 问题描述 计算一个整数的阿尔法乘积.对于一个整数x来说,它的阿尔法乘积是这样来计算的:如果x是一个个位数,那么它的阿尔法乘积就是它本身:否则的话,x的阿尔法乘积就等于它的各位非0的数字相乘所得到的那个整数的阿尔法乘积.例如:4018224312的阿尔法乘积等于8,它是按照以下的步骤来计算的: 4018224312 → 4*1*8*2*2*4*3*1*2 → 3072 → 3*7*2 → 42 → 4*2 → 8 编写一个程序,输入一个正整数(该整