题目

一共有\(n\)本书,混乱值是连续相同高度书本的段数。

可以取出\(k\)本书随意放回,问最小混乱值,高度\([25\sim 32]\)


分析

设\(f[i][j][k][mask]\)表示前\(i\)本书已经抽出了\(j\)本,前\(i\)本中没被抽出的

书里最后一本书的高度是\(k\),\(mask\)是一个\(0\sim 2^8-1\)的二进制,表示前\(i\)本中没被

抽出的书里高度的存在情况。整体表示前\(i\)本书中没被抽出的书组成的序列的最小混乱度。

然后枚举第\(i\)本书是否被抽出。


代码

#include <cstdio>
#include <cstring>
#define rr register
using namespace std;
const int po[9]={1,2,4,8,16,32,64,128,256}; bool v[101];
int b[101],dp[2][101][11][261],top,c[101],t[101],n,m,a[101];
inline void Min(int &a,int b){if (a>b) a=b;}
signed main(){
scanf("%d%d",&n,&m);
for (rr int i=1;i<=n;++i){
scanf("%d",&a[i]),a[i]-=24;
if (a[i]!=a[i-1]) b[++top]=a[i];
++c[top];
}
for (rr int i=top;i;--i){
if (v[b[i]]) ++t[i];
v[b[i]]=1;
}
memset(dp[0],42,sizeof(dp[0]));
dp[0][0][0][0]=0;
for (rr int i=1;i<=top;++i){
memset(dp[i&1],42,sizeof(dp[i&1]));
for (rr int j=0;j<=m;++j)
for (rr int k=0;k<9;++k)
for (rr int p=0;p<po[8];++p){
if (dp[(i&1)^1][j][k][p]>n) continue;
Min(dp[i&1][j][b[i]][p|po[b[i]-1]],dp[(i&1)^1][j][k][p]+(b[i]!=k));//不动
if (j+c[i]>m) continue;
Min(dp[i&1][j+c[i]][k][p|po[b[i]-1]],dp[(i&1)^1][j][k][p]+!(p&po[b[i]-1]));//放前面
if (t[i]) Min(dp[i&1][j+c[i]][k][p],dp[(i&1)^1][j][k][p]);//放后面
}
}
rr int ans=2e9;
for (rr int i=0;i<=m;++i)
for (rr int j=0;j<9;++j)
for (rr int k=0;k<po[8];++k)
Min(ans,dp[top&1][i][j][k]);
return !printf("%d",ans);
}

#状压dp#JZOJ 3853 帮助Bsny的更多相关文章

  1. jzoj 5230 队伍统计(状压DP)

    Description 现在有n个人要排成一列,编号为1->n .但由于一些不明原因的关系,人与人之间可能存在一些矛盾关系,具体有m条矛盾关系(u,v),表示编号为u的人想要排在编号为v的人前面 ...

  2. BZOJ 1087: [SCOI2005]互不侵犯King [状压DP]

    1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3336  Solved: 1936[Submit][ ...

  3. nefu1109 游戏争霸赛(状压dp)

    题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1109 //我们校赛的一个题,状压dp,还在的人用1表示,被淘汰 ...

  4. poj3311 TSP经典状压dp(Traveling Saleman Problem)

    题目链接:http://poj.org/problem?id=3311 题意:一个人到一些地方送披萨,要求找到一条路径能够遍历每一个城市后返回出发点,并且路径距离最短.最后输出最短距离即可.注意:每一 ...

  5. [NOIP2016]愤怒的小鸟 D2 T3 状压DP

    [NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可 ...

  6. 【BZOJ2073】[POI2004]PRZ 状压DP

    [BZOJ2073][POI2004]PRZ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍 ...

  7. bzoj3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一(spfa+状压DP)

    数据最多14个有宝藏的地方,所以可以想到用状压dp 可以先预处理出每个i到j的路径中最小权值的最大值dis[i][j] 本来想用Floyd写,无奈太弱调不出来..后来改用spfa 然后进行dp,这基本 ...

  8. HDU 1074 Doing Homework (状压dp)

    题意:给你N(<=15)个作业,每个作业有最晚提交时间与需要做的时间,每次只能做一个作业,每个作业超出最晚提交时间一天扣一分 求出扣的最小分数,并输出做作业的顺序.如果有多个最小分数一样的话,则 ...

  9. 【BZOJ1688】[Usaco2005 Open]Disease Manangement 疾病管理 状压DP

    [BZOJ1688][Usaco2005 Open]Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) ...

  10. 【BZOJ1725】[Usaco2006 Nov]Corn Fields牧场的安排 状压DP

    [BZOJ1725][Usaco2006 Nov]Corn Fields牧场的安排 Description Farmer John新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M< ...

随机推荐

  1. 【Android 逆向】【攻防世界】boomshakalaka-3

    1. apk 安装到手机,是一个cocos2dx 写的打飞机的游戏 题目描述跟得分有关(题目描述: play the game, get the highest score) 2. jadx 打开ap ...

  2. 导致Redis访问慢的常见操作

    导致Redis访问慢的原因通常有2个方面: 第一,Redis本身性能出现了瓶颈,如:内存使用率过高,并发过大等 第二,存在大KEY,或者客户端访问命令使用不当引起的阻塞 在此,只列举因为的客户端命令使 ...

  3. mongodb(2022)

    了解 文档数据库MongoDB用于记录文档结构的数据,如JSON.XML结构的数据.一条文档就是一条记录(含数据和数据结构),一条记录里可以包含若干个键值对.键值对由键和值两部分组成,键又叫做字段.键 ...

  4. pwd模块

    # pwd模块提供了获取UNIX平台用户的账户与密码信息(通过文件/etc/passwd),在所有的UNIX版本平台都可以用. # pwd模块返回的是一个类似元组的对象,该对象的各个属性对应于pass ...

  5. 【Azure Developer】使用Python代码获取VM的IP地址 (Public IP + Private IP)【未解决问题标签】

    记录使用以下的代码获取Azure VM中的IP地址 """Create and manage virtual machines. This script expects ...

  6. 浅入 ABP 系列(7):对象映射

    目录 基础 DTO和实体 麻烦的映射 AutoMapper 集成 IObjectMapper/ObjectMapper 对象拓展 写博客的过程中,发现很多基础理论太薄弱,因此很多专业词汇可能会解释错误 ...

  7. ExoPlayer播放流程解析

    ExoPlayer的播放解析流程如下(以音频为例): 注意: 1.LoadControl.shouldContinueLoading控制是否继续加载. 2.调用setPlayWhenReady(tru ...

  8. 四: Mysql用户管理

    # 用户与权限管理 MySQL用户可以分为普通用户和root用户, root用户是超级管理员,拥有所有权限,包括创建用户.删除用户和修改用户的密码等管理权限:普通用户只拥有被授予的各种权限. MySQ ...

  9. Android switch语句报错Constant expression required

    方案一 :可以用 if来替代  如下 原因:在Android Studio中使用JDK17以上版本,会出现switch语句报错"Constant expression required&qu ...

  10. .NET 5 以后的 HttpClient 超时问题

    背景 起因是朋友在使用深信服的 Easy Connect 连接到内网之后,使用 HttpClient 访问对应内网的 API 站点均返回 System.Net.Sockets.SocketExcept ...