深搜超时求帮助
查看原帖
深搜超时求帮助
280157
星宇,不曾楼主2020/9/20 18:10
#include<bits/stdc++.h>
#define max_ 31
using namespace std;
int v,n,vn[max_],min_=2147000000;
void f(int a,int b)
{
	if(vn[a]<b)
	{
		b-=vn[a];
		if(a==n)
		{
			min_=b<min_? b:min_;
			return;
		}	
		f(a+1,b);
	} 
	else
		if(a==n)
			min_=b<min_? b:min_;
		else f(a+1,b);
	if(a>n)
	{
		cout<<min_;
		return;
	}  
	else f(a+1,v);
}
bool com(int a,int b)
{
	return a>b;
}
int main()
{
	cin>>v>>n;
	for(int i=1;i<=n;i++) cin>>vn[i];
	sort(vn+1,vn+1+n,com);
	f(1,v);
	return 0;
}
2020/9/20 18:10
加载中...