社区讨论

AC算法

P1094[NOIP 2007 普及组] 纪念品分组参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mi6njb3p
此快照首次捕获于
2025/11/20 07:47
4 个月前
此快照最后确认于
2025/11/20 07:47
4 个月前
查看原帖
算法为贪心,最小的和最大的一组,以此类推,附上代码,看不懂就给你三年细细研究!!!!!!!!!
CPP
#include<bits/stdc++.h>
using namespace std;
int a[30001];
int main()
{
	int w,n,i,j,k,l=0,s=0;
	scanf("%d%d",&w,&n);
	for(i=1;i<=n;i++)
	  scanf("%d",&a[i]);
	sort(a+1,a+1+n);
	for(i=1;i<=n&&a[i]!=0;i++)
	  {
	  	for(j=n;j>=1;j--)
	  	  {
	  	  	if(a[i]+a[j]<=w&&a[i]!=0&&a[j]!=0){s++;a[i]=0;a[j]=0;break;}
		  }
	  }
	for(i=1;i<=n;i++)
	  if(a[i]!=0) l++;
	s+=l;
	printf("%d",s);
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...