您的位置:首页 > 运维架构

贪心&Shopaholic

2016-01-24 15:03 232 查看
题意:Lindsay是一个购物狂,某商店进行一个促销活动,每买三件东西,其中最便宜的一件免费。很明显的贪心题。

思路:对所有物品的价格进行排序,从大到小三个三个一次的买,累加每次的最便宜的一件,直到剩下的恰好选完或者不足三件(注意不足三件不满足活动要求)。累加的和为answer.

上代码:

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long LL;
const int maxn=20005;
//char a[maxn],b[maxn];
int p[maxn];
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n,mdis=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&p[i]);
sort(p+1,p+1+n,cmp);
for(int i=1;i<=n-2;i+=3)
{
mdis+=p[i+2];
}
printf("%d\n",mdis);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: