买瓜--dfs‘剪枝

1.后缀和剪枝

2.排序大数在前剪枝

3.枚举3种情况

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
const int N=2005;
typedef long long ll;
const double MAX=1e10;
int n,m;
double a[32];
double s[32];
int mi=-1;
int c=0;
void dfs(double w,int d,int x)
{
	if(w==m)
	{
		if(!c) mi=d,c++;
		else mi=min(d,mi);
	}
	if(w+s[x+1]<m) return;
	if(w>m) return;
	if(x>n) return;
	dfs(w+a[x+1],d,x+1);
	dfs(w,d,x+1);
	dfs(w+a[x+1]/2,d+1,x+1);
	
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
cin>>n>>m;
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n,greater<double>());
for(int i=n-1;i>=0;i--) s[i]=s[i+1]+a[i];
dfs(a[0],0,0);
dfs(0,0,0);
dfs(a[0]/2,1,0);
cout<<mi;
return 0;
}
相关推荐
uhakadotcom23 分钟前
BentoML远程代码执行漏洞(CVE-2025-27520)详解与防护指南
后端·算法·面试
_x_w26 分钟前
【16】数据结构之基于树的排序算法篇章
开发语言·数据结构·python·算法·链表·排序算法
西门吹雪分身41 分钟前
Redis之RedLock算法以及底层原理
数据库·redis·算法
一路向北he1 小时前
杰理10k3950温度测量
java·数据结构·算法
描绘一抹色1 小时前
力扣-hot100(最长连续序列 - Hash)
数据结构·算法·leetcode
黄昏ivi2 小时前
事件触发控制与响应驱动控制的定义、种类及区别
人工智能·分布式·学习·算法·机器学习
温文尔雅透你娘2 小时前
摄像头在自动驾驶中的核心应用:感知算法与技术方案深度解析
人工智能·算法·计算机视觉·目标跟踪·自动驾驶
Vacant Seat2 小时前
贪心算法-跳跃游戏
算法·游戏·贪心算法
是小满满满满吗2 小时前
基础贪心算法集合2(10题)
算法·贪心算法
小林熬夜学编程2 小时前
【高阶数据结构】第三弹---图的存储与遍历详解:邻接表构建与邻接矩阵的BFS/DFS实现
c语言·数据结构·c++·算法·深度优先·图论·宽度优先