为什么只有60分
查看原帖
为什么只有60分
377768
Tooler_Yang楼主2022/7/26 15:44
#include<bits/stdc++.h>
using namespace std;
long long w[101];
int n;
long long k;
int ans;
void dfs(int x,int all){
	if(all<=k){
		ans=max(ans,all);
	}
	if(all>k) return;
	for(int i=x;i>=1;i--){
		if(all+w[i]<=k){
			dfs(i-1,all+w[i]);
		}
	}
}
int main(){
	cin>>n>>k;
	int i=1;
	for(;i<=n;i++){
		cin>>w[i];
		if(w[i]>k){
			i--;
			break;
		}
	}
	dfs(i,0);
	cout<<ans;
	return 0;
}

难道还能优化吗

2022/7/26 15:44
加载中...