math715 2014-06-13 06:56 采纳率: 0%
浏览 786

最小向量乘积,遇见错误请指正

#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <list>
#include <map>
#include <queue>
#include <set>
#include <string>
#include <vector>
using namespace std;
typedef long long ll;

int main ( )
{
int n;
vector<int> vec1, vec2;
while( EOF != scanf( "%d", &n ) ){
int tmp;
ll sum = 0;
for( int i = 0; i < n; ++i ) {
scanf( "%d", &tmp );
vec1.push_back( tmp );
}
for( int i = 0; i < n; ++i ) {
scanf( "%d", &tmp );
vec2.push_back( tmp );
}
sort( vec1.begin( ), vec1.end( ) );
sort( vec2.begin( ), vec2.end( ), std::greater<int>() );
for( int i = 0; i < n; ++i ) {
sum += vec1[i] * vec2[i];
}
printf( "%lld\n", sum );
}
return 0;
}

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-03-16 12:42
    关注

    该回答引用ChatGPT

    这段代码看起来是用于求解两个长度为n的向量的最小向量乘积。


    代码本身没有明显的错误,但是需要注意以下几点:

    • 1.需要在每次循环开始时清空vec1和vec2,否则会出现多次输入导致向量长度错误的问题。
    • 2.需要在循环前将sum初始化为0,否则sum的值会被上一次的计算结果所影响。
    • 3.应该将sort的第三个参数写成std::greater(),而不是std::greater(),因为后者在一些编译器中会被解释为bool类型。

    完整代码如下:

    #include <algorithm>
    #include <cmath>
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <list>
    #include <map>
    #include <queue>
    #include <set>
    #include <string>
    #include <vector>
    using namespace std;
    typedef long long ll;
    
    int main() {
        int n;
        while (EOF != scanf("%d", &n)) {
            vector<int> vec1, vec2;
            int tmp;
            ll sum = 0;
            for (int i = 0; i < n; ++i) {
                scanf("%d", &tmp);
                vec1.push_back(tmp);
            }
            for (int i = 0; i < n; ++i) {
                scanf("%d", &tmp);
                vec2.push_back(tmp);
            }
            sort(vec1.begin(), vec1.end());
            sort(vec2.begin(), vec2.end(), std::greater<int>());
            for (int i = 0; i < n; ++i) {
                sum += vec1[i] * vec2[i];
            }
            printf("%lld\n", sum);
        }
        return 0;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)