听说灌水区大佬多,求助站外题
  • 板块灌水区
  • 楼主chenxinran12
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/5/21 16:31
  • 上次更新2024/5/21 19:12:51
查看原帖
听说灌水区大佬多,求助站外题
936554
chenxinran12楼主2024/5/21 16:31

小明带了 N 个小朋友爬山游玩。游玩了一天,现在小朋友们需要从山顶上下山,但是非常累都不想动了。小明只好花钱让小朋友们通过缆车方式坐车下山。索道上的缆车最大承重量为 W,而 N 个小朋友的体重分别是 C 1,C 2,…,C N。 当然,每辆缆车上的小朋友的重量之和不能超过 W。每租用一辆缆车,小明就要付 1美元,所以他们想知道,最少需要付多少美元才能把这 N 个小朋友都运送下山?
输入样例:

5 1996
1
2
1994
12
29

输出样例:

2

代码爆1了

#include<bits/stdc++.h>
using namespace std;
int n,m,c[1000],ans,p[1000];
bool dfs(int x,int tot)
{
	if(x>tot) return true;
	for(int i=1;i<=x&&i<=tot;i++)
	{
		if(p[i]+c[i]<=m)
		{
			p[i]+=c[i];
			bool q=dfs(x+1,tot);
			p[i]-=c[i];
			if(q) return true;
		}
	}
	return false;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>c[i];
	for(int i=1;i<=n;i++)
	{
		if(dfs(1,i))
		{
			cout<<i;
			return 0;
		}
	}
	return 0;
}
2024/5/21 16:31
加载中...