状态由\(从前往后排好的长度\)和\(排好的团队\)决定,\(DP\)方程挺有思考价值的。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define R(a,b,c) for(register int  a = (b); a <= (c); ++ a)
#define nR(a,b,c) for(register int  a = (b); a >= (c); -- a)
#define Max(a,b) ((a) > (b) ? (a) : (b))
#define Min(a,b) ((a) < (b) ? (a) : (b))
#define Fill(a,b) memset(a, b, sizeof(a))
#define Abs(a) ((a) < 0 ? -(a) : (a))
#define Swap(a,b) a^=b^=a^=b
#define ll long long//#define ON_DEBUG#ifdef ON_DEBUG#define D_e_Line printf("\n\n----------\n\n")
#define D_e(x)  cout << #x << " = " << x << endl
#define Pause() system("pause")
#define FileOpen() freopen("in.txt","r",stdin);#else#define D_e_Line ;
#define D_e(x)  ;
#define Pause() ;
#define FileOpen() ;#endifstruct ios{template<typename ATP>ios& operator >> (ATP &x){x = 0; int f = 1; char c;for(c = getchar(); c < '0' || c > '9'; c = getchar()) if(c == '-')  f = -1;while(c >= '0' && c <= '9') x = x * 10 + (c ^ '0'), c = getchar();x*= f;return *this;}
}io;
using namespace std;int num[21], sum[100007][21];
int bin[21];
int f[(1 << 20) + 7];int main(){int n, m;io >> n >> m;R(i,1,n){int x;io >> x;R(j,1,m) sum[i][j] = sum[i - 1][j];++num[x];++sum[i][x];}bin[1] = 1;R(i,2,m) bin[i] = bin[i - 1] << 1;Fill(f, 0x3f3f3f3f);f[0] = 0;int maxx = (1 << m) - 1;R(i,0,maxx){int len = 0;R(j,1,m){if(i & bin[j]){len += num[j];}}R(j,1,m){if(i & bin[j]){f[i] = Min(f[i], f[i ^ bin[j]] + num[j] - (sum[len][j] - sum[len - num[j]][j]));}}}printf("%d", f[maxx]);return 0;
}

转载于:https://www.cnblogs.com/bingoyes/p/11221869.html

Luogu3694 邦邦的大合唱站队 (状压DP)相关推荐

  1. 【算法竞赛学习笔记】状压DP

    title : 状压DP date : 2022-3-5 tags : ACM,图论,动态规划 author : Linno 状压DP 状态压缩,是利用二进制数的性质对问题进行优化的一种算法,经常与搜 ...

  2. POJ 1038 Bugs Integrated Inc (复杂的状压DP)

    \(POJ~1038~~*Bugs~Integrated~Inc:\) (复杂的状压DP) \(solution:\) 很纠结的一道题目,写了大半天,就想练练手,结果这手生的.其实根据之前那道炮兵阵地 ...

  3. codeforces 8C. Looking for Order 状压dp

    题目链接 给n个物品的坐标, 和一个包裹的位置, 包裹不能移动. 每次最多可以拿两个物品, 然后将它们放到包里, 求将所有物品放到包里所需走的最小路程. 直接状压dp就好了. #include < ...

  4. UVA10296 Jogging Trails(中国邮递员问题)(欧拉回路、一般图最大权匹配 / 状压DP)

    整理的算法模板合集: ACM模板 目录 思路 UVA10296 Jogging Trails 题目翻译: 给你n个点,m条无向边,每条边有一定的距离数值,构造成一个连通图.问从任意一点出发,遍历所有的 ...

  5. POJ 2411 Mondriaan‘s Dream(最清楚好懂的状压DP讲解)(连通性状态压缩DP)

    poj 2411 Mondriaan's Dream(最清晰的状压DP解析) 闫氏DP大法好 我们这里是一列一列地来,因为是一个棋盘性的状态压缩DP,从哪个方向都一样 摆放的小方格总方案数 等价于 横 ...

  6. 【每日DP】day2、P1879 [USACO06NOV]Corn Fields G玉米地(状压DP模板题)难度⭐⭐⭐★

    昨天的每日DP我还在写01背包,今天就到状压DP了,真刺激. P1879 [USACO06NOV]Corn Fields G 题目链接 输入 2 3 1 1 1 0 1 0 输出 9 一道简单的状压D ...

  7. hdu 4778 Gems Fight! 状压dp

    转自wdd :http://blog.csdn.net/u010535824/article/details/38540835 题目链接:hdu 4778 状压DP 用DP[i]表示从i状态选到结束得 ...

  8. 【洛谷 P1896】[SCOI2005]互不侵犯(状压dp)

    题目链接 题意:在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. 这是道状压\(DP\)好题啊.. ...

  9. P2340 奶牛会展(状压dp)

    P2340 奶牛会展 题目背景 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行 了面试,确定了每头奶牛的智商和情商. 题目描述 贝西有权选择让哪些奶牛参加展览.由 ...

  10. UVa 11825 (状压DP) Hackers' Crackdown

    这是我做状压DP的第一道题,状压里面都是用位运算来完成的,只要耐下心来弄明白每次位运算的含义,还是容易理解的. 题意: 有编号为0~n-1的n台服务器,每台都运行着n中服务,每台服务器还和若干台其他服 ...

最新文章

  1. 父类的析构函数定义为虚函数
  2. jdk jenkins 配置ant_安装配置maven、ant(Jenkins)
  3. 为什么Python类语法应该不同?
  4. [2018.12.26]BZOJ1022 [SHOI2008]小约翰的游戏John
  5. python新建一个文件夹需要重新安装模块吗_解决pycharm每次新建项目都要重新安装一些第三方库的问题...
  6. 一键多功能按键识别c语言,单片机一键多功能按键识别设计
  7. 使用exp导出导入,需要注意的问题。
  8. MFC改变对话框背景颜色
  9. 【CV】如何使用Tensorflow提供的Object Detection API--4--开始训练模型
  10. encodeURI() 的用法
  11. RoboCode的Intellij环境搭建
  12. 深度学习 deep learning 花书 pdf下载
  13. 252个核心词根——词缀(前缀-后缀)总结大全【最全-一文看懂!!!】
  14. ttl传输种过期_ttl传输中过期是什么意思怎么解决
  15. IDEA 神级插件!效率提升 50 倍!
  16. [转载]中华桥梁先驱——茅以升
  17. 雨水情测报系统+智慧水库大坝安全监测系统
  18. 屏幕校色icc文件的必要标签
  19. cisco(思科)交换机路由器基础命令
  20. 独立个人博客有什么用?建独立博客有何意义?

热门文章

  1. python【力扣LeetCode算法题库】42-接雨水(双指针法)
  2. python【蓝桥杯vip练习题库】ALGO-148 5-1最小公倍数(GCD)
  3. oracle 唯一递增列,在oracle中创建unique唯一约束(单列和多列)
  4. 人脸识别技术有哪些新的发展_疫情下,旅游景区人脸识别技术可以应用在哪些场景?...
  5. 网络推广外包——网络推广外包专员表示网站营销推广重点细节要抓住
  6. 网站图片如何优化才对排名有所提升呢?
  7. html百度地图标记图标,百度地图开发之点击地图给该位置添加标注(图标)并弹出对应的位置...
  8. 图片轮播html实现原理,纯CSS实现图片轮播
  9. 软件测试方法单元测试例子,service单元测试例子
  10. 建模大师怎么安装到revit中_「Revit技巧」插件挤满了、冲突了,怎么办?