请求加强数据
查看原帖
请求加强数据
360025
zzyaba楼主2025/1/16 18:39
#include<bits/stdc++.h>
using namespace std;
int n,s,ans=20,w[19];
bool flag;
vector<int>v;
int main(){
	srand(114514);
	cin>>n>>s;
	for(int i=1;i<=n;i++){
		cin>>w[i];
	}
	sort(w+1,w+n+1);
	for(int l=1;l<=1000000;l++){
		swap(w[rand()%n+1],w[rand()%n+1]);
		for(int i=n;i>=1;i--){
			flag=1;
			for(auto&j:v){
				if(j>=w[i]){
					j-=w[i];
					flag=0;
				}
			}
			if(flag){
				v.push_back(s-w[i]);
			}
		}
		ans=min(ans,(int)v.size());
		v.clear();
	}
	cout<<ans;
}

贪心1e6次就过了

2025/1/16 18:39
加载中...