求调
查看原帖
求调
783336
Earth_Sky楼主2024/12/31 18:23

rt,77pts

#include<bits/stdc++.h>
using namespace std;
int n,w,ans,c[20],sum[20];
void dfs(int u,int v){
	if(v>=ans) return;
	if(u==n){ans=v;return;}
	for(int i=1;i<=v;i++){
		if(sum[i]+c[u]<=w){
			sum[i]+=c[u];
			dfs(u+1,v);
			sum[i]-=c[u];
		}
	}
	sum[v+1]=c[u];
	dfs(u+1,v+1);
	sum[v+1]=0;
}
int main(){
	ios::sync_with_stdio(NULL);
	cin.tie(0);cout.tie(0);
	cin>>n>>w;ans=n;
	for(int i=1;i<=n;i++) cin>>c[i];
	sort(c+1,c+n+1,greater<int>());
	dfs(1,1);cout<<ans;

	return 0;
}
2024/12/31 18:23
加载中...