C++贪心算法-第二弹

本文深入探讨了C++中贪心算法的应用,通过实例分析展示了如何利用贪心策略解决复杂问题,揭示了贪心算法在优化问题上的高效性和实用性。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

//Author:PanDaoxi
#include <iostream>
#include <cmath> 
using namespace std;
int a1,a2,a3,a4,a5,a6,sum=0;
int main(){ 
	cin>>a1>>a2>>a3>>a4>>a5>>a6;
	sum=a4+a5+a6;
	sum+=ceil(a3/4.0); //向上取整
	a3%=4; //得到多余a3商品
	a1-=min(a1,a5*11); //a5商品:用a1填空 
	if(a2<a4*5){ //a4填空:2*2的地方 
		a1-=min(a1,(a4*5-a2)*4); 
	}
	a2-=min(a2,a4*5);
	//a3填空
	if(a3==3){ 
		if(!a2){
			a1-=min(a1,4); //先占2*2的位置  
		}
		a2-=min(a2,1);
		a1-=min(a1,5);
	} 
	if(a3==2){
		if(a2<3){
			a1-=min(a1,(3-a2)*4);
		}
		a2-=min(a2,6);
		a2-=min(a1,3);
	}
	if(a3==1){
		if(a2<5){
			a1-=min(a1,(5-a2)*4);
		}
		a1-=min(a1,7);
		a2-=min(a2,5);
	}
	sum+=ceil(a2/9.0);
	a2%=9;
	if(a2){ //a2箱子不为0 
		a1-=min(a1,(9-a2)*4);
	}
	sum+=ceil(a1/36);
	cout<<sum<<endl;
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值