[蓝桥杯][算法提高VIP]最小乘积(提高型)-排序
生活随笔
收集整理的這篇文章主要介紹了
[蓝桥杯][算法提高VIP]最小乘积(提高型)-排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
給兩組數,各n個。
請調整每組數的排列順序,使得兩組數據相同下標元素對應相乘,然后相加的和最小。要求程序輸出這個最小值。
例如兩組數分別為:1 3 -5和-2 4 1
那么對應乘積取和的最小值應為:
(-5) * 4 + 3 * (-2) + 1 * 1 = -25
輸入
第一個行一個數T表示數據組數。后面每組數據,先讀入一個n,接下來兩行每行n個數,每個數的絕對值小于等于1000。
n< =1000,T< =10
輸出
一個數表示答案。
樣例輸入
2
3
1 3 -5
-2 4 1
5
1 2 3 4 5
1 0 1 0 1
樣例輸出
-25
6
解題思路:
水題!!!
代碼如下:
#include <iostream> #include <algorithm> using namespace std; const int N = 1010; int a[N],b[N]; bool cmp(const int a,const int b) {return a > b; }int main() {int cnt;cin>>cnt;while(cnt--){int n;cin>>n;for (int i = 0;i<n;i++)cin>>a[i];for (int i = 0;i<n;i++) cin>>b[i];sort(a,a+n);sort(b,b+n,cmp);int ans = 0;for (int i =0;i<n;i++) ans+=a[i]*b[i];cout<<ans<<endl;}return 0; }總結
以上是生活随笔為你收集整理的[蓝桥杯][算法提高VIP]最小乘积(提高型)-排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 南山楂的功效与作用、禁忌和食用方法
- 下一篇: 洛谷 P1596 [USACO10OCT