贪心算法,思路见代码

本来想搜索,结果有O(1)的算法,我佛了

其实每一种6x6的方案可以打表预处理,然后dp or search

但是既然可以贪心何乐而不为呢?

 #include <set>
#include <map>
#include <cmath>
#include <queue>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
/*
//体积为4,5,6的有一个就需要一个箱子,体积为3的需要(c+3)/4个箱子
//剩余的空间我们采取贪心的策略,先放2x2的箱子,4x4的箱子还剩下boxD*5个2x2的空间
//对于3x3底面积的需要分情况讨论
//3x3的箱子装完了还剩下3个,留下了1个2x2的空间
//3x3的箱子装完了还剩下2个,留下了3个2x2的空间
//3x3的箱子装完了还剩下2个,留下了5个2x2的空间
//解决了2x2的空间还剩下1x1的,总体积减去所有其他箱子的体积,就剩下1x1的空间了。
*/
int main() {
for(int a,b,c,d,e,f,ans; scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f)&&(a+b+c+d+e+f);) {
ans=(c+)/+d+e+f;
int left2x2=d*;
if(c%==)left2x2+=;
else if(c%==)left2x2+=;
else if(c%==)left2x2++;
if(b>left2x2)ans+=((b-left2x2)+)/;
int left1x1=*ans-*b-*c-*d-*e-*f;
if(a>left1x1)ans+=((a-left1x1)+)/;
cout<<ans<<endl;
}
return ;
}

最新文章

  1. DX12龙书第6章习题
  2. String path = request.getContextPath(); String basePath = request.getScheme() + &quot;://&quot; + request.getServerName() + &quot;:&quot; + request.getServerPort() + path + &quot;/&quot;;作用!!!!!
  3. Android原生(Native)C开发之一:环境搭建篇
  4. Javascript模块化规范
  5. Linux内核分析--操作系统是如何工作的
  6. 2016 Multi-University Training Contest 4 Bubble Sort(树状数组模板)
  7. 背景CSS
  8. objective-c中点语法的使用
  9. TCP三次握手和http过程
  10. BZOJ 1008 [HNOI2008]越狱
  11. Linux学习之第十九、条件判断
  12. Bash环境配置文件
  13. Django实现简单分页功能
  14. 设计一个有getMin功能的栈(1)
  15. Yii2框架RBAC(Role-Based Access Control)的使用
  16. 写一个python的服务监控程序
  17. over(partition by)开窗函数的使用
  18. 使用组件构建Android应用程序
  19. JSTL 标签库 使用(web基础学习笔记十九)
  20. gitlab一次代码回滚引起的bug...

热门文章

  1. C#设计模式学习笔记:(1)单例模式
  2. 编程中的幂等性 —— HTTP幂等性
  3. 网络共享服务(二)之NFS
  4. SEO中10个常用的查询指令
  5. PAT (Advanced Level) Practice 1011 World Cup Betting (20 分) (找最值)
  6. PAT (Advanced Level) Practice 1008 Elevator (20 分) (模拟)
  7. 大json直接序列化成dataset
  8. PHPMailer发送邮件遇坑小记
  9. idea 2018.1.2激活方法,有效期至2099年
  10. linux常见目录介绍