dp
查看原帖
dp
1120678
13288917088c楼主2023/12/14 11:23

dp普-, but......我只会dfs......

#include<bits/stdc++.h>
using namespace std;
int a[505],b[505],n,l,sum=0,ans=0x7fffffff,m=0;
void dfs(int x){
	if(m>=ans){
		return;
	}
	if(sum>=l){
		ans=min(ans,m);
		return;
	}
	if(x==n){
		return;
	}
	m+=a[x];
	sum+=b[x];
	dfs(x+1);
	m-=a[x];
	sum-=b[x];
	dfs(x+1);
}
int main(){
	cin>>n>>l;
	for(int i=0;i<n;i++){
		cin>>a[i]>>b[i];
		sum+=b[i];
	}
	if(sum<l){
		cout<<"no solution";
		return 0;
	}
	sum=0;
	dfs(0);
	cout<<ans;
	return 0;
}
2023/12/14 11:23
加载中...