洛谷P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper

迭代加深DFS,暴力枚举就行啦。。。

代码

//By AcerMo
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,lim;
int a[30],v[30];
int IDAS(int x)
{
	for (int i=1;i<=x&&i<=lim;i++)
	if (v[i]+a[x]<=m) 
	{
		v[i]+=a[x];
		if (x==n) return 1;
		if (IDAS(x+1)) return 1;
		v[i]-=a[x];
	}
	return 0;
}
signed main()
{
	cin>>n>>m;
	for (int i=1;i<=n;i++) cin>>a[i];
	for (lim=1;!IDAS(1);lim++)
		memset(v,0,sizeof(v));
	cout<<lim;
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/acerandaker/article/details/81087632