jzoj4743-积木【状压dp】

正题


题目大意

有长方体积木nnn块,求能搭成的最高高度。


解题思路

考虑状态压缩,设fs,i,jf_{s,i,j}fs,i,j表示积木使用状态为sss,最下面的是第iii块,状态为jjj

状态:对于一个长方体a,b,ca,b,ca,b,c

  1. a∗ba*bab的底
  2. a∗ca*cac的底
  3. b∗cb*cbc的底

首先枚举状态,然后枚举当前放哪个,然后枚举上次放哪个,然后枚举最上面哪个的放置状态,然后暴力动态转移。

时间复杂度O(2n∗n2)O(2^n*n^2)O(2nn2)


codecodecode

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=17;
struct node{int a,b,c;
}c[N];
int f[1<<N][N][3],MS,n,ans;
bool check(int x,int y,int l,int w)
{return x>=l&&y>=w||x>=w&&y>=l;}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d%d%d",&c[i].a,&c[i].b,&c[i].c);MS=(1<<n);for(int s=0;s<MS;s++){for(int i=1;i<=n;i++){if(s&(1<<(i-1))) continue;int mb=s|(1<<(i-1));for(int j=1;j<=n;j++)for(int k=0;k<3;k++){int l,w;if(k==0) l=c[j].a,w=c[j].b;else if(k==1) l=c[j].a,w=c[j].c;else l=c[j].b,w=c[j].c;if(check(c[i].a,c[i].b,l,w))f[mb][i][0]=max(f[mb][i][0],f[s][j][k]+c[i].c);if(check(c[i].a,c[i].c,l,w))f[mb][i][1]=max(f[mb][i][1],f[s][j][k]+c[i].b);if(check(c[i].b,c[i].c,l,w))f[mb][i][2]=max(f[mb][i][2],f[s][j][k]+c[i].a);}}}//1-a*b 2-a*c 3-b*cfor(int i=1;i<=n;i++)for(int k=0;k<3;k++)ans=max(ans,f[MS-1][i][k]);printf("%d",ans);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spark入门(六)Spark SQL shell启动方式(元数据存储在mysql)

一、hive配置文件 在spak/conf目录添加hive-site.xml配置&#xff0c;设置mysql作为元数据存储的数据库 <?xml version"1.0" encoding"UTF-8" standalone"no"?> <?xml-stylesheet type"text/xsl" href"configurat…

Asp.NET Core2.0 项目实战入门视频课程_完整版

END OR START? 看到这个标题&#xff0c;你开不开心&#xff0c;激不激动呢&#xff1f; 没错&#xff0c;.net core的入门课程已经完毕了。52ABP.School项目从11月19日&#xff0c;第一章视频的试录制&#xff0c;到今天完整版出炉&#xff0c;离不开各位的帮助和加油。 课程…

Js中等于号使用

判断必须用 多等于 赋值用 切记 意思是值相等 是值和类型都相等

jzoj4745-看电影【期望概率,数学】

正题 题目大意 一个环&#xff0c;nnn个人。 每次随机选一个位置&#xff0c;把顺时针第一个踢掉。直到只剩下kkk个人&#xff0c;求第ididid个人留下的期望概率。 解题思路 首先我们考虑一个环&#xff0c;若第xxx的概率比第yyy号的概率打&#xff0c;那么将环旋转到使得yyy…

VS Tools for AI全攻略(2)低配置虚拟机也能玩转深度学习,无需NC/NV系列

接着上文VS Tools for AI全攻略&#xff0c;我们来讨论如何使用Azure资源来训练我们的tensorflow项目。Azure云我个人用得很多&#xff0c;主要是因为微软爸爸批了150刀每月的额度&#xff0c;我可以愉快地玩耍。 那么针对Azure&#xff0c;有成套的两个方案解决问题。 方案一&…

Spark入门(七)Spark SQL thriftserver/beeline启动方式

一、启动thrift服务 启动thriftServer&#xff0c;默认端口为10000,。 --jars 添加worker类库 --driver-class-path 驱动类库 --master spark集群地址 --total-executor-cores 启动的核数&#xff0c;默认是所有核数 --executor-memory 每个work分配的内存&#xff0c;…

array关于map,reduce,filter的用法

1、.map直接还原一个数组中多个对象里面的单个属性 不需要任何push操作 let arr [{a:10,b:50},{a:20,b:60},{a:30,b:80}]; let result arr.map((cb)>{return cb.a}); console.log(result); // [10, 20, 30]2、.reduce用于数组中的元素需要做递归操作&#xff0c;比如累加…

欢乐纪中B组周六赛【2019.3.9】

前言 AKAKAK了(虽然有一堆AKAKAK的) 成绩 RankRankRank是有算别人的 今天LRZLRZLRZ不在 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC1112017myself2017myself2017myself3003003001001001001001001001001001002929292017zyc2017zyc2017zyc210210210100100100101010…

【青岛】12月16日.NETCore与AI技术交流会-等你来哦!!

主题是拥抱开源 拥抱开源&#xff1a;开放是互联终端不断增长的主旨和核心——使技术世界变得越来越复杂&#xff0c;联系越来越紧密。在微软&#xff0c;我们专注于向客户提供任何信息支持&#xff0c;即使在任何设备或者在多个平台上。 未来是开放的&#xff0c;未来的云是开…

MyBatis Generator分页插件RowBoundsPlugin坑

一、Mybatis Generator设置分页 Mybatis Generator没有设置分页&#xff0c;但自带了个RowBoundsPlugin分页插件&#xff0c;故而配置 <plugin type"org.mybatis.generator.plugins.RowBoundsPlugin"/> 在mysql数据库进行查询的表分页10条&#xff0c;查很久…

对于自绝对父相的理解

1、如果对子元素施加绝对定位&#xff0c;然后设置一个bottom为20 则&#xff1a; html <div class"k1"><div class"k2">1111</div></div>.k1 {margin: 0 auto;height: 500px;width: 500px;background: green;}.k2 {height: 100…

【北京】微软技术直通车(第二期) 之 SQL Server 2017饕餮

微软技术直通车 本系列活动密切关注微软及周边相关技术。以微软云计算和相关产品为依托&#xff0c;涉及云计算、数据处理、开发工具、商用软件、物联网、人工智能等前沿科技。 系列活动邀请微软技术专家、一线开发者、成功创业者、企业家等进行技术和经验分享。让您直通微软新…

P1993-小K的农场【差分约束,SPFA】

正题 题目链接:https://www.luogu.org/problemnew/show/P1993 题目大意 有若干个条件 Waw>WbW_aw>W_bWa​w>Wb​Waw<WbW_aw<W_bWa​w<Wb​WaWbW_aW_bWa​Wb​ 解题思路 差分约束不解释 codecodecode #include<cstdio> #include<queue> #incl…

MyBatis中的RowBounds

转载自 MyBatis中的RowBounds 一、如何分页查询 Mybatis如何分页查询&#xff1f;Mysql中可以使用limit语句&#xff0c;但limit并不是标准SQL中的&#xff0c;如果是其它的数据库&#xff0c;则需要使用其它语句。MyBatis提供了RowBounds类&#xff0c;用于实现分页查询。R…

vscode插件以及配置

插件&#xff1a; Auto Rename Tag indent-rainbow 好看多彩的缩进空格 Dracula Officila 吸血鬼主题 Rainbow Brackets 彩虹括号&#xff0c;强烈推荐 快捷键&#xff1a; 代码折叠&#xff1a; 1、Ctrl键 Shift键 [键 折叠 2、Ctrl键 Shift键 ]键 展开 多行选中 &#x…

使用 MQTTnet 快速实现 MQTT 通信

1 什么是 MQTT &#xff1f; MQTT&#xff08;Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输&#xff09;是 IBM 开发的一个即时通讯协议&#xff0c;有可能成为物联网的重要组成部分。MQTT 是基于二进制消息的发布/订阅编程模式的消息协议&#xff0c;如今…

P1726-上白泽慧音【tarjan,图论】

正题 题目链接:https://www.luogu.org/problemnew/show/P1726 题目大意 求最大的强联通分量和包含的点 解题思路 tarjantarjantarjan模板不解释。 codecodecode #include<cstdio> #include<algorithm> #include<stack> using namespace std; const int N5…

Maven的pom.xml文件详解------Build Settings

转载自 Maven的pom.xml文件详解------Build Settings 根据POM 4.0.0 XSD&#xff0c;build元素概念性的划分为两个部分&#xff1a;BaseBuild&#xff08;包含poject build和profile build的公共部分&#xff0c;见下&#xff09;和poject build包含的一些高级特性。 <p…

git代码合并冲突与撤回提交

查看版本 切回到某一个版本 git log --graph --abbrev-commit --decorate --prettyoneline git reset --hard a07cefe git有一种情况会造成代码被冲掉&#xff1a; 这里有A端和B端&#xff1a; 相同文本基础之上 A端写了大量代码&#xff0c;提交推送 B端拉取&#xff0c;改了代…

Asp.net Core中SignalR Core预览版的一些新特性前瞻,附源码(消息订阅与发送二进制数据)

前言 一晃一个月又过去了,上个月有个比较大的项目要验收上线.所以忙的脚不沾地.现在终于可以忙里偷闲,写一篇关于SignalR Core的文章了. 先介绍一下SignalR吧,如下: ASP.NET SignalR是ASP.NET开发人员的一个库&#xff0c;它简化了向Web应用程序添加即时通讯功能的过程。 它可以…