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;
}
浙公网安备 33010602011771号