其他分享
首页 > 其他分享> > P1094 [NOIP2007 普及组] 纪念品分组 贪心

P1094 [NOIP2007 普及组] 纪念品分组 贪心

作者:互联网

P1094 [NOIP2007 普及组] 纪念品分组
如果当前的最小物品+最大物品不超过上限,这两个物品合并,如果不行最大物品只能单独为一件不能与其它的任何一个合并,这样合并最后就是最少的分组。本题用到的知识点有,排序,双指针,贪心思想。

//P1094 纪念品分组
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
vector <int> jkp;
int w,n;
int main()
{
	cin>>w;
	cin>>n;
	for (int i=1;i<=n;i++)
	{
		int x;
		cin>>x;
		jkp.push_back(x);
	}
	sort(jkp.begin(),jkp.end());
	int i=0,j=jkp.size()-1;
	int ans=0;
	while(i<=j)
	{
		if (jkp[i]+jkp[j]<=w)
		{
			ans++;i++;j--;
		}
		else
		{
			ans++;j--;
		}
	}
	cout<<ans<<endl;
	return 0;
}

  

标签:NOIP2007,int,jkp,P1094,分组,物品,include,贪心
来源: https://www.cnblogs.com/smghj/p/15978955.html