3-10 分礼物

来源:互联网 发布:乡镇网络舆情预警机制 编辑:程序博客网 时间:2024/04/30 05:41

题意:给你一个整数W,代表每组的最大价值,n表示纪念品数,然后给你n个纪念品的价值,每组纪念品不超过2个,求最少的纪念品组数。



思路:贪心。先按照价值从小到大排列。每次取最大价值和最小价值,若小于W

i++,j--,表示当前最大最小价值纪念品一组;否则j--,最大价值单独一组。直到i,j重合,表明所有纪念品组合完。

#include<iostream>#include<algorithm>using namespace std;#define maxn 30000+5  int p[maxn];int main(){int w, n,len=0;cin >> w >> n;for (int i = 0; i < n; i++)cin >> p[i];sort(p, p + n);int j = 0,i=n-1;while(j<=i){if (p[i] + p[j] <= w){i--;j++;}elsei--;len++;}cout << len<<endl;return 0;}




原创粉丝点击