这道题我超时了!请求大佬优化
查看原帖
这道题我超时了!请求大佬优化
592111
YIDINGZ楼主2022/4/30 14:03

代码如下:

#include<bits/stdc++.h>
using namespace std;
int n,b,dmax = 10000000;
int a[1000];
bool vst[1000];

void dfs(int sum)
{
	if(dmax > sum&&sum!= 0&&sum >= b)
	{
		dmax = sum;
		return;
	}
	
	for(int i =0;i <= n;i++)
	{
		if(vst[i] != 1)
		{
			vst[i] = 1;
			dfs(sum+a[i]);
			vst[i] = 0;
		}
	}
}



int main()
{
	cin >> n >> b;
	for(int i =0;i < n;i++)
	{
		cin >> a[i];
	}
	dfs(0);
	cout << dmax - b;
	return 0;
}
2022/4/30 14:03
加载中...