\(Description:\)

给出n个物品,体积为w[i],现把其分成若干组,要求每组总体积<=W,问最小分组。

\(Sample\) \(Input:\)

4 10
5
6
3
7 3

\(Sample\) \(Output:\)

3

\(Hint:\)

\(n<=18\)

\(Solution:\)

喵的,如果这题数据范围再小一点,我就水过去了。。。

暴力上来就写了PRZ的做法,拿到了 \(8\) 分的好成绩。

正解:

记录两个数组:

最优方案 \(f[]\)

最多最后一次电梯的最大剩余

转移时两个都更新一下就好了。

#include<bits/stdc++.h>
using namespace std;
int n,m,Max_status;
const int N=20,M=(1<<18)+5;
int w[N],res[M],f[M];
// res => 最优方案下留下的最多体积
// f   => 最有方案要的电梯乘坐次数
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;++i) scanf("%d",&w[i]);Max_status=(1<<n)-1;memset(f,0x3f,sizeof(f));f[0]=1; res[0]=m;// 一开始已经要做一次电梯 for(int s=0;s<=Max_status;++s){for(int i=1;i<=n;++i) if(!(s&(1<<(i-1)))){// 这次塞下了 if(res[s]>=w[i] && f[s|(1<<(i-1))]>=f[s])f[s|(1<<(i-1))]=min(f[s|(1<<(i-1))],f[s]),res[s|(1<<(i-1))]=max(res[s|(1<<(i-1))],res[s]-w[i]);// 这次放不下 else if(res[s]<w[i] && f[s|(1<<(i-1))]>=f[s]+1)f[s|(1<<(i-1))]=min(f[s|(1<<(i-1))],f[s]+1),res[s|(1<<(i-1))]=max(res[s|(1<<(i-1))],m-w[i]);}}printf("%d\n",f[Max_status]);return 0;
} 

转载于:https://www.cnblogs.com/JCNL666/p/10739041.html

【题解】P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper相关推荐

  1. P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper [模拟退火]

    P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper 给出n个物品,体积为w[i],现把其分成若干组,要求每组总体积<=W,问最小分组.(n<=18 ...

  2. LUOGU P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper

    题目描述 A little known fact about Bessie and friends is that they love stair climbing races. A better k ...

  3. 洛谷 P3052 USACO 摩天大楼里的奶牛Cows in a Skyscraper

    题目描述 A little known fact about Bessie and friends is that they lovestair climbing races. A better kn ...

  4. P3052 [USACO12MAR]摩天大楼里的奶牛 [状压DP]

    传送门 用f[i]记录状态为i的最小值 g[i] 记录状态为i 的剩下电梯的空间的最大值 #include<bits/stdc++.h> #define N 19 using namesp ...

  5. P3052 [USACO12MAR]摩天大楼里的奶牛

    传送门(洛谷) 状压dp f [ i ] 表 示 i 这 种 状 态 所 需 要 的 最 小 组 数 f[i]表示i这种状态所需要的最小组数 f[i]表示i这种状态所需要的最小组数 g [ i ] 表 ...

  6. 【USACO】摩天大楼里的奶牛Cows in a Skyscraper

    题目 https://www.luogu.org/problemnew/show/P3052 思路 状压DP 用i表示状态:奶牛是否进车厢 设f[i]为状态为i,用最少的车箱数 设g[i]为车厢最后一 ...

  7. 摩天大楼里的云服务器

    亲爱的自己,在摩天大楼里,你的灵魂是否已被禁锢?丧失爱的能力? 亲爱的自己,面对光怪陆离的事物,你是否早已经相信世界没有免费的午餐? 亲爱的自己,在处处碰壁的现实下,你是否抱怨为何喜欢的事物门槛都那么 ...

  8. leetcode题解151-翻转字符串里的单词

    问题描述 给定一个字符串,逐个翻转字符串中的每个单词. 示例 1: 输入: "the sky is blue" 输出: "blue is sky the" 示例 ...

  9. 题解:[USACO12MAR]花盆Flowerpot 【单调队列】

    对于这个题目,我们有两种方法(其实都是单调队列) 第一种,我们考虑二分答案,每次二分一个宽度,看最大和最小的差是否能到达d 第二种,我们考虑直接统计答案,每当高度差相差超过d的时候就直接进行统计答案, ...

最新文章

  1. [RabbitMQ]RabbitMQ深入理解(一)进阶/管理/配置
  2. jq常用过滤器_Jquery过滤器
  3. 洛谷 4568 [JLOI2011] 飞行路线
  4. php生成option,php递归实现无限分类生成下拉列表的函数
  5. android web view
  6. 信息林-青岛分类信息网.net源码
  7. [Linux] day03——REHL部署
  8. 渗透测试——XP工具练习
  9. linux安装雅黑字体,在CentOS系统中安装雅黑字体
  10. 华为第1书:《华为交换机学习指南》全面预售中
  11. 产品读书《交互设计沉思录》
  12. uniapp选择图片压缩并上传
  13. 【Cicadaplayer】播放器的时间戳
  14. 【C语言】求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字
  15. 关于使用Pytorch时,训练集模型表现很好但测试集模型表现极差的原因
  16. Service(服务)
  17. 哔!您有一份程序员数学公式宝典,请查收
  18. PHP实现获取url地址中一级域名
  19. 使用nginx临时搭建rtmp服务器
  20. 5个高质量的自学网站,每天坚持一小时,让你受益一生!

热门文章

  1. Linux/docker下oracle开启监听,开启自动启动
  2. 2022-2028年中国电容器电子薄膜行业市场研究及前瞻分析报告
  3. 浅显易懂 Makefile 入门 (08)— 默认 shell (/bin/sh)、命令回显、make参数(-n 只显示命令但不执行,-s 禁止所有回显)、单行命令、多行命令、并发执行
  4. Golang 元素值在经过通道传递时会被复制,这个复制是浅复制
  5. Python 标准库之 Queue
  6. 『PyTorch』第十一弹_torch.optim优化器 每层定制参数
  7. HiCar人-车-家全场景智慧互联
  8. 什么是OpenMAX技术分析OpenMAX
  9. 模拟内存计算如何解决边缘人工智能推理的功耗挑战
  10. 给手绘图着色(添加颜色或色彩):CVPR2020论文点评