qaq
查看原帖
qaq
376481
Carrot_Rui楼主2020/10/21 10:22

哪错了wa

#include<iostream>
#include<algorithm>
using namespace std;
int w,n,tot,s,a[500001];
int main()
{
	cin>>w>>n;s=w;
	for(int i=1;i<=n;i++)
	   cin>>a[i];
	sort(a+1,a+1+n);
	for(int i=n;i>=1;i--){ 
	//找最大先,装入后赋值 0 
		s-=a[i];a[i]=0;
		for(int j=1;j<=i;j++){
		//接着找能装下的最小值 
			if(s-a[j]>0){
				s-=a[j];
				a[j]=0;
			}
			else {
				s=w;
				tot++;
				break;
			}
		}
	}
	if(s>0) tot++;
//最后可能 s - a[i] 是大于零 则加一; 
	cout<<tot<<endl;
	return 0;
 } 
2020/10/21 10:22
加载中...