zoukankan      html  css  js  c++  java
  • 最小数积 1403

    这道题yaozhaoguilv

    题目描述:

    有两个向量 v1 = (x1, x2, x3, ..., xn),v2 = (y1, y2, y3, ..., yn)。允许任意交换 v1 和 v2 的分量顺序,试计算 v1 和 v2 的内积 x1y1 + x2y2 + ... + xn *yn 的最小值。(1 <= n <= 800,-1000 <= xi <= 1000, -1000 <= yi <= 1000)

    输入描述:

    第一行输入一个正整数 n,表示每个向量中的分量数目。

    第二行输入向量 v1 的 n 个整数分量,每个分量之间用一个空格分隔。

    第三行输入向量 v2 的 n 个整数分量,每个分量之间用一个空格分隔。

    输出描述:

    一个整数,占一行,两个向量乘积的最小值。

    样例输入:

    3

    1 3 -5

    -2 4 1

    样例输出:

    -25

    思想:一个从小到大排列,一个从大到小排列

    乘积最小。

     1 #include<iostream>
     2 using namespace std;
     3 int main(){
     4     int n,i,j;
     5     while(cin>>n){
     6         long v1[n];
     7         long v2[n];
     8         long sum=0,p,q;
     9         for(i=0;i<n;i++){
    10             cin>>v1[i];
    11         }
    12         for(i=0;i<n;i++){
    13             cin>>v2[i];
    14         }
    15         for(i=0;i<n-1;i++){
    16             for(j=0;j<n-i-1;j++){
    17                 if(v1[j]>v1[j+1]){
    18                     p=v1[j];
    19                     v1[j]=v1[j+1];
    20                     v1[j+1]=p;
    21                 }
    22                 if(v2[j]<v2[j+1]){
    23                     q=v2[j];
    24                     v2[j]=v2[j+1];
    25                     v2[j+1]=q;
    26                 }
    27             }
    28         }
    29         for(i=0;i<n;i++){
    30             sum=sum+v1[i]*v2[i];
    31         }
    32         cout<<sum<<endl;
    33     }
    34     return 0;
    35 }
    转载请标明出处
  • 相关阅读:
    C# if else 使物体在X轴循环移动
    Jmeter之csv、用户自定义变量以及Query Type分析
    jmeter实战之笔记整理
    Badboy参数化
    Jmeter之Badboy录制脚本及简化脚本http请求
    jmeter之jdbc请求
    性能测试
    接口自动化学习--testNG
    接口自动化学习--mock
    Git工具使用小结
  • 原文地址:https://www.cnblogs.com/zq-dmhy/p/11074345.html
Copyright © 2011-2022 走看看