内容简介:问题描述那么对应乘积取和的最小值应为:(-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提高
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。