橙题DFS悬关求调
查看原帖
橙题DFS悬关求调
1144555
gdfz02sjy楼主2024/6/21 21:36
#include<bits/stdc++.h>
using namespace std;
long long a,b,d,sum;
int main(){
	cin>>a>>b;
	long long c[a];
	bool s[a],k=true,m=true;
	for(int i=0;i<a;i++){cin>>c[i];s[i]=true;}
	sort(&c[0],&c[a]);
	while(k){//判断是否可以结束 
		k=false;
		m=true;//初始化 	
		d=b;
		for(int i=0;i<a;i++){//开始循环 
			if(s[i]&&d-c[i]>=0){
				s[i]=false;
				k=true;
				d-=c[i];
			}
			if(d==0){
				sum++;
				m=false;
				continue;
			}
		}
		if(m)sum++;
	}
	cout<<sum-1;
	return 0;
}
2024/6/21 21:36
加载中...