买瓜--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;
}
相关推荐
重整旗鼓~1 小时前
向量数据库milvus
人工智能·算法·机器学习·向量数据库
reverie.Ly1 小时前
递归算法(5)——深度优先遍历(4)决策树
c++·算法·决策树·深度优先
pen-ai1 小时前
离散概率分布:正态分布,二项分布,连续分布,正态分布的性质
算法·机器学习·概率论
程序员老冯头2 小时前
第七节 MATLAB数据类型
开发语言·前端·数据结构·python·算法·matlab·信息可视化
数据捕手199701080182 小时前
深度剖析淘宝拍立淘按图搜索商品API技术规范
算法·图搜索算法
James. 常德 student2 小时前
动态规划感悟1
算法·动态规划
float_六七2 小时前
在处理欧拉函数时如何使用逆元
算法·数论·欧拉函数
梭七y2 小时前
leetcode日记(106)买卖股票的最佳时机Ⅲ
算法·leetcode·职场和发展
ん贤3 小时前
优先队列 priority_queue详解
java·数据结构·c++·算法·优先队列
蒙帕智能运维3 小时前
蒙帕视角|Transformer:AI大模型的基石(二)
算法