内容简介:问题描述那么对应乘积取和的最小值应为:(-5) * 4 + 3 * (-2) + 1 * 1 = -25
问题描述
给两组数,各n个。
请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。
例如两组数分别为:1 3-5和-2 4 1
那么对应乘积取和的最小值应为:
(-5) * 4 + 3 * (-2) + 1 * 1 = -25
输入格式
第一个行一个数T表示数据组数。后面每组数据,先读入一个n,接下来两行每行n个数,每个数的绝对值小于等于1000。
输出格式
一个数表示答案。
样例输入
分析:两组数据,一组升序排列,另一组降序排列,对应下标的数字相乘,最后求和~
#include <map>
#include <string>
using namespace std;
string add(string s1, string s2) {
int len1 = s1.length(), len2 = s2.length();
if (len1 < len2) {
string t(len2 - len1, '0');
s1 = t + s1;
} else if (len2 < len1) {
string t(len1 - len2, '0');
s2 = t + s2;
}
string ans = s1;
int car = 0;
for (int i = s1.length() - 1; i >= 0; i--) {
ans[i] = (s1[i] - '0' + s2[i] - '0' + car) % 10 + '0';
car = (s1[i] - '0' + s2[i] - '0' + car) / 10;
}
if (car) ans = (char) (car + '0') + ans;
return ans;
}
int main() {
string a, b;
cin >> a >> b;
cout << add(a, b);
return 0;
}
❤❤点击这里 -> 订阅PAT、蓝桥杯、GPLT天梯赛、LeetCode题解离线版❤❤
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 蓝桥杯 ADV-189 算法提高 连接乘积
- 力扣152——乘积最大子序列
- Leetcode日记_01,乘积最大子序列
- 算法 - 找出数组中子集乘积的最大值
- LeetCode每日一题: 三个数的最大乘积(No.628)
- HTML5提高
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Beginning XSLT 2.0
Jeni Tennison / Apress / 2005-07-22 / USD 49.99
This is an updated revision of Tennison's "Beginning XSLT", updated for the new revision of the XSLT standard. XSLT is a technology used to transform an XML document with one structure into another ......一起来看看 《Beginning XSLT 2.0》 这本书的介绍吧!