(理直气壮的问)为什么wa了一个点?
查看原帖
(理直气壮的问)为什么wa了一个点?
463562
Dreamerlee✅楼主2021/4/10 16:08

本蒟蒻感觉写的没毛病

#include <iostream>
#include <cstdio>
using namespace std;
int n, a[20010], ans=0x7777777,siz;
void dfs(int sum,int x)
{
	if ( x > n)
	{
		ans = min(ans, sum);//要最小的容量
		return;
	}
	for (int i = x; i <= n; i++)
	{
		if (sum >= a[i])//如果背包剩余空间可以拿的起
		{
			sum -= a[i];//拿下
			dfs(sum,i+1);//下一个物品
			sum += a[i];//不拿
		}
	}
}
int main()
{
	cin >> siz;
	cin >> n;
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	dfs(siz,1);
	cout << ans;
	return 0;
}
2021/4/10 16:08
加载中...