由于n很小(<=15)我们考虑状态压缩

显然可以用三进制(雾)但是太浪费了

我们令f[i][j][s]表示现在已用的积木状态为S,最上面那个积木是第i个,其中这个积木的第j(0<=j<3)条边是竖着的(不在上表面)

转移的时候枚举i'和j‘判断一下即可

由于每个积木边长顺序没有影响所以可以先排序方便比较

#pragma GCC opitmize("O3")
#pragma G++ opitmize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int f[16][3][1<<16]={0},a[20][3]={{1<<30,1<<30,1<<30}},n,MS,A=0;
inline void max(int& x,int y){ x<y?x=y:0; }
inline bool ok(int i,int j,int x,int y){int f[2],g[2],t1=0,t2=0;for(int k=0;k<3;++k) if(k^j) f[t1++]=a[i][k];for(int k=0;k<3;++k) if(k^y) g[t2++]=a[x][k];return f[0]>=g[0] && f[1]>=g[1];
}
int main(){scanf("%d",&n);  MS=1<<n+1;for(int i=1;i<=n;++i){scanf("%d%d%d",a[i],a[i]+1,a[i]+2);sort(a[i],a[i]+3);}f[0][0][1]=1;for(int S=0;S<MS;++S)for(int i=0;i<=n;++i)for(int j=0;j<3;++j)if(f[i][j][S])for(int di=1;di<=n;++di)if(!(S&(1<<di)))for(int dj=0;dj<3;++dj)if(ok(i,j,di,dj)) max(f[di][dj][S|(1<<di)],f[i][j][S]+a[di][dj]);for(int S=0;S<MS;++S)for(int i=0;i<=n;++i)for(int j=0;j<3;++j) max(A,f[i][j][S]);printf("%d\n",--A);
}

转载于:https://www.cnblogs.com/Extended-Ash/p/9477194.html

Jzoj4743 积木相关推荐

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

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

  2. 机器人最大的人类士人禾力积木_开化县华埠镇中心小学:积木机器人好玩儿~~...

    为培养学生的科学素养,提高学生创新精神,开化县华埠镇中心小学在2020年初,为学生搭建了机器人学习平台.在上级领导和学校的支持下,经过近一年的发展,一粒科学种子正在破土而出,茁壮成长. 01 兴趣领航 ...

  3. python搭积木_从零实现”搭积木式实现策略“的回测系统 part VI

    本篇我们将对比经典量化回测框架pyalgotrade与ailabx,二者同时实现均线策略. 先看pyalgotrade的代码实现: from pyalgotrade import strategy f ...

  4. 【机器视觉案例】(10) AI视觉搭积木,手势移动虚拟物体,附python完整代码

    各位同学好,今天和大家分享一下如何使用 opencv+mediapipe 完成手势移动虚拟物体,可自定义各种形状的物体,通过手势搭积木.先放张图看效果. 规则:当食指在某个物体内部,并且中指指尖和食指 ...

  5. 蓝桥杯-搭积木-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  6. Java并发必知必会第三弹:用积木讲解ABA原理

    作者介绍 悟空聊架构 种树比较好的时间是十年前,其次是现在. 自主开发了Java学习平台.PMP刷题小程序.目前主修Java.多线程.SpringBoot.SpringCloud.k8s. 本公众号不 ...

  7. 别看乐高模板了!利用计算机视觉技术,这个软件几秒就识别满地积木,还能激发灵感...

    来源:大数据文摘本文约1800字,建议阅读5分钟 本文教你用 Brickit 把乐高玩出花来. 说到乐高,那可是大人小孩没人不爱的玩具了. 每次看到一大堆的乐高积木,把它们挨个拼成模板图那样的时候,成 ...

  8. AC日记——积木大赛 洛谷 P1969

    题目描述 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没 ...

  9. 积木履带机器人编程手册_学会编程,寓教于乐!ONEBOT 反履机甲图赏

    爱其科技旗下自主品牌 ONEBOT 发布了一款可控制行动.可编程的机器人- ONEBOT 反履机甲. 该产品包含了800+零件,即使是积木界的老司机,最少也得有3小时时间来搭建.如果是10岁+的小朋友 ...

最新文章

  1. ubuntu服务器常见使用技巧及-kill掉后GPU显存不释放进程-
  2. js控制网页滚动条往下滚动
  3. 检测到磁盘可能为uefi引导_【可QQ无偿协助】无法安装windows 因为这台电脑的磁盘布局不受UEFI固件支持...
  4. 36氪研究院:机器人行业产业图谱
  5. SpringBoot - 优雅的实现【异步编程】
  6. 【机器学习】深入理解CatBoost
  7. shell 获取值 默认值
  8. SpringMVC自学日志02(初识SpringMVC)
  9. 【Spring】Spring Security OAuth2 JWT 认证
  10. Dorado Debugger工具
  11. codeforces水题100道 第二十五题 Codeforces Round #197 A. Helpful Maths (Div. 2) (strings)
  12. kindle刷机ttl_kindle paper white 2 (kpw) 无限重启救砖方法
  13. 全量、增量 数据抽取 同步
  14. ffmpeg 图像格式转换
  15. 笔记本电脑间的串口通信
  16. Liunx 安装 phpStudy
  17. 你鼓舞了我是世界杯主题曲吗_20位鼓舞人心的科技女性
  18. 机器学习基石 5.1 Recap and Preview
  19. WebRTC 拥塞控制 | Trendline 滤波器
  20. 使用朋也社区搭建自己的社区网站就是这么简单~~

热门文章

  1. 以post方式携窗体等参数向服务器发送请求 发出去的字节流 返回的内容
  2. Ten years of pedestrian Detection-论文整理
  3. 时域补零对于DFT谱的影响
  4. Python 列表推导 、生成器表达式与声明式编程
  5. Ubuntu下动态库与静态库混合连接
  6. BCGControlBar MFC对话框换肤 续
  7. 运维常用进程查看命令
  8. [gtest][002] A quick start to build the Google C++ Testing project
  9. java从mysql中查数据_java怎么从数据库中查询数据并输出
  10. asm 查看 数据文件 修改 时间_ASM磁盘组ORA15042故障处理案例一:NORMAL磁盘组下失败组离线后ORA15042报错的处理...