本文主要是介绍玲珑杯Round #13 A -- 你没看见A(贪心,水题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
Start Time:2017-04-01 12:50:00 End Time:2017-04-01 15:20:00 Refresh Time:2017-04-01 16:43:44 Public
Time Limit:2s Memory Limit:516MByte
Submissions:714Solved:279
你有NN个苹果以及NN个梨子, 第ii个苹果的美味度是AiAi, 第j个梨子的美味度BjBj
在接下来的NN天里面, 每天你要吃掉一个苹果和一个梨子, 每天的愉悦度是吃掉的苹果和梨子的美味度的乘积, 显然吃掉的水果不能再吃
你想知道,最好情况下, 接下来这NN天的愉悦度的最大值
先把两个从大到小排序,然后对应项相乘,注意用long long
代码:
#include <stdio.h>
#include <string.h>
#include <string>
#include <iostream>
#include <stack>
#include <queue>
#include <vector>
#include <algorithm>
#define mem(a,b) memset(a,b,sizeof(a))
#define N 500000
#define inf 0x3f3f3f3f
#define M 1000000+2000
#define LL long long
using namespace std;
LL a[N],b[N];
bool cmp(LL a,LL b)
{return a>b;
}
int main()
{LL n,sum=0;scanf("%lld",&n);for(LL i=0; i<n; i++)scanf("%lld",&a[i]);for(LL i=0; i<n; i++)scanf("%lld",&b[i]);sort(a,a+n,cmp);sort(b,b+n,cmp);for(LL i=0;i<n;i++)sum+=a[i]*b[i];printf("%lld\n",sum);return 0;
}
这篇关于玲珑杯Round #13 A -- 你没看见A(贪心,水题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!