国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

算法訓練 最小乘積(基本型)

2019-11-10 19:11:28
字體:
來源:轉載
供稿:網友
算法訓練 最小乘積(基本型)  時間限制: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輸出格式  一個數表示答案。樣例輸入
231 3 -5-2 4 151 2 3 4 51 0 1 0 1

樣例輸出

-256

思路:

一個正序,一個倒序,在紙上畫畫就有思路了

代碼:

#include<iostream>#include<string>#include<cstring>#include<algorithm>using namespace std;const int MAXN=9;int ans[MAXN],bns[MAXN];bool cmp(int a, int b){    return a>b;}int main(){    int T,n;    scanf("%d",&T);    while(T--)    {        scanf("%d",&n);        memset(ans,0,sizeof(ans));        memset(bns,0,sizeof(bns));        for(int i=0;i<n;i++)        {            scanf("%d",&ans[i]);        }        for(int i=0;i<n;i++)        {            scanf("%d",&bns[i]);        }        sort(ans,ans+n);        sort(bns,bns+n,cmp);        int sum=0;        for(int i=0;i<n;i++)        {            sum+=ans[i]*bns[i];        }        PRintf("%d/n",sum);    }    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 额尔古纳市| 漯河市| 涡阳县| 伊春市| 肃北| 盘锦市| 襄樊市| 莱州市| 东莞市| 朔州市| 银川市| 迁安市| 绥宁县| 绵阳市| 盈江县| 哈密市| 泰来县| 顺义区| 白水县| 马尔康县| 揭西县| 东方市| 波密县| 格尔木市| 鲁山县| 淳安县| 岚皋县| 东兰县| 泾阳县| 行唐县| 香港| 乡城县| 蓬溪县| 那曲县| 潼关县| 桐城市| 新田县| 乌拉特后旗| 通榆县| 池州市| 宣汉县|