社区讨论
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 条回复,欢迎继续交流。
正在加载回复...