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


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

//P1094 纪念品分组
#include
#include
#include
using namespace std;
vector  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<