题目:GCJ Round 1A 2008 Problem A. Minimum Scalar Product
思路:贪心
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <iostream>
#include <map>
#include <vector>
#define eps (1e-10)
using namespace std;
vector<__int64>v1,v2;
bool cmp(__int64 a,__int64 b)
{
return a>b;
}
int main()
{
freopen("A-large-practice.in","r",stdin);
freopen("A-large-practice.out","w",stdout);
int t;
scanf("%d",&t);
for(int cas=1;cas<=t;cas++)
{
v1.clear();
v2.clear();
int n;
__int64 x;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%I64d",&x);
v1.push_back(x);
}
for(int i=0;i<n;i++)
{
scanf("%I64d",&x);
v2.push_back(x);
}
sort(v1.begin(),v1.end());
sort(v2.begin(),v2.end(),cmp);
__int64 ans=0;
for(int i=0;i<v1.size();i++)
ans+=v1[i]*v2[i];
printf("Case #%d: %I64d\n",cas,ans);
}
return 0;
}
本文介绍了 Google Code Jam 2008 Round 1A Problem A 的解决方案,采用贪心算法求解最小标量积问题,并提供了一段 C++ 实现代码,展示了如何通过排序来实现最优配对。
1164

被折叠的 条评论
为什么被折叠?



