欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

P1094 纪念品分组

程序员文章站 2022-07-16 12:07:58
...

之前一直做一本通上面的题,最近改做洛古了。hhh

那么,先放几张图片高兴高兴

P1094 纪念品分组P1094 纪念品分组P1094 纪念品分组喜欢就点个赞呗!(逃

那么,进入正文

思路:
读入之后先用sort排序,然后用两个指针一起向中间走,每次选择都尽可能的让当前状态下最大的和最小的分在一组,如果不行就最大的单独分一组,这样贪心下来就是最少分的组了。

#include<iostream>
#include<algorithm>
using namespace std;
int a[30000],i,j;
int main()
{
	int m,n;
	int Minimum_number_of_groups=0;
	cin>>m>>n;
	for(i=0;i<n;i++)
		cin>>a[i];
	sort(a,a+n);//排序 
	i=0;j=n-1;
	//最大与最小一组:
	while(i<=j)
	{
		if(a[i]+a[j]<=m)
		{
			i++;
			j--;
			Minimum_number_of_groups++;
		}
		else
		{
			j--;
			Minimum_number_of_groups++;
		}
	}
	cout<<Minimum_number_of_groups;
	return 0;
}

P1094 纪念品分组

相关标签: 洛古