牛客贪心题---纪念品分组

纪念品分组

  • 贪心策略:最大的先和小的组合
  • 先从小到大排列,然后从左右两边开始找符合条件的两件纪念品,如果不符合,就让右边的单独放一组
#include<bits/stdc++.h>

#define maxn 30005

using namespace std;

int a[maxn];
int main(){
    int w,n;
    cin>>w>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    sort(a+1,a+n+1);
    int ans=0;
    for(int i=1,j=n;j>=i;j--,ans++){
        if(a[i]+a[j]<=w) i++;
    }
    cout<<ans<<"
";
    return 0;
}
原文地址:https://www.cnblogs.com/bingers/p/13175186.html