acwing165 小猫爬山

这题很简单的dfs 之所以说是因为一开始贪心错了

我原本的贪心思路:
先从大到小排序
若能在已有的当中找到一个车厢放进这只小猫 就把它放进去,否则开一个新车厢来放
hack:
4 7
3 3 2 2 2 2
正解:2 错解:3

正确思路:
dfs(x,y)正在放第x只 已经用了y个车厢
然后把x放进1-y个以及新开车厢都试一遍
优化: 一开始从大到小排序(减少搜索树大小);若y>ans 直接return

代码

#include<iostream>
#include<cstdio>
#include<algorithm>

using namespace std;
int n,w;
int a[20];
int b[20];
int ans=20;
void dfs(int x,int y)
{
	if(y>ans)return;
	if(x==0)
	{
		ans=min(ans,y);
		return;
	}
	bool mark=false;
	for(int i=1;i<=y;++i)
	{
		if(b[i]+a[x]<=w)
		{
			b[i]+=a[x];
			dfs(x-1,y);
			b[i]-=a[x];
		}
	}
	b[y+1]=a[x];
	dfs(x-1,y+1);
}
int main()
{
	scanf("%d%d",&n,&w);
	for(int i=1;i<=n;++i)
	{
		scanf("%d",&a[i]);
	}
	sort(a+1,a+n+1);
	dfs(n,0);
	printf("%d\n",ans);
	return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
RunCat_for_windows是一个小应用程序,它是一只一直奔跑的小猫,用于监测CPU的使用情况。当CPU的使用率越高,小猫咪也就跑得越快。 安装使用RunCat_for_windows的过程如下: 1. 首先,你需要去GitHub上下载RunCat_for_windows的源码,下载完成后解压缩。 2. 安装dotnet,选择系统直接安装最新版即可。你可以通过运行指令`dotnet --version`来查看dotnet的版本。你可以从Microsoft的官方网站下载dotnet:https://dotnet.microsoft.com/en-us/download 3. 下载runcat.exe应用程序。打开命令提示符,进入源码所在的目录,运行指令`dotnet publish -c Release`来生成应用程序。 4. 启动RunCat。你可以在启动目录中找到应用程序,双击它来启动。例如,如果你的启动目录是Desktop\RunCat_for_windows-master\RunCat\bin\Release\net5.0-windows\win-x64,你可以双击该目录下的应用程序来启动RunCat。 在RunCat中,你可以右击小猫咪,切换成parrot,还可以切换light和dark模式。 另外,根据引用,你还需要准备以下设备和软件: - Windows笔记本电脑(通过WiFi连接局域网) - Jetson Xavier Nx(通过网线连接笔记本电脑) - 小猫咪(运行到PC端) 为了使小猫咪能够在笔记本电脑上运行,你需要进行一些共享局域网的设置。具体步骤如下: 1. 打开网络连接设置,右击已经连接到互联网的网络设备属性。 2. 在Internet连接共享选项中,选择以太网(通过网络连接的Jetson设备)。 3. 对以太网进行IP设置。 希望以上信息对你有帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值