https://codeforces.com/contest/1215/problem/E

cnt[x][j]表示把x这种颜色全放到j这种颜色前面所需要的交换次数。

其实这题跟上一篇博客那题是同一个套路,难点在于想到预处理出cnt数组来进行转移。

 1 #define bug(x) cout<<#x<<" is "<<x<<endl
 2 #define IO std::ios::sync_with_stdio(0)
 3 #include <bits/stdc++.h>
 4 #define iter ::iterator
 5 //#define pa pair<int,int>
 6 using namespace  std;
 7 #define ll long long
 8 #define mk make_pair
 9 #define pb push_back
10 #define se second
11 #define fi first
12 #define ls o<<1
13 #define rs o<<1|1
14 ll mod=998244353;
15 const int inf=2e9+10;
16 const int N=(1<<20)+5;
17 ll d[N],cnt[25][25],sum[25];
18 int n;
19 int main(){
20     IO;
21     cin>>n;
22     for(int i=1;i<=n;i++){
23         int x;
24         cin>>x;
25         x--;
26         for(int j=0;j<20;j++){
27             cnt[x][j]+=sum[j];
28         }
29         sum[x]++;
30     }
31     for(int i=0;i<=N-2;i++)d[i]=1e18;
32     d[0]=0;
33     for(int s=0;s<(1<<20);s++){
34         for(int i=0;i<20;i++){
35             if(!((s>>i)&1)){
36                 ll res=0;
37                 for(int j=0;j<20;j++){
38                     if((s>>j)&1){
39                         res+=cnt[i][j];
40                     }
41                 }
42                 int ns=s^(1<<i);
43                 d[ns]=min(d[ns],d[s]+res);
44             }
45         }
46     }
47     cout<<d[(1<<20)-1]<<endl;
48 }

转载于:https://www.cnblogs.com/ccsu-kid/p/11533702.html

Codeforces Round #585 (Div. 2)E. Marbles(状压dp)相关推荐

  1. Codeforces Round #585 (Div. 2) E. Marbles 状压dp + 逆序对

    传送门 文章目录 题意: 思路: 题意: 思路: 考虑数列最终的状态一定是相同颜色在一起,所以我们发现他的颜色是有顺序的!显然可以用状压dpdpdp来枚举颜色的顺序,但是又有问题了,你怎么确定当前这个 ...

  2. Educational Codeforces Round 13 E. Another Sith Tournament 状压dp

    E. Another Sith Tournament 题目连接: http://www.codeforces.com/contest/678/problem/E Description The rul ...

  3. Codeforces Round #585 (Div. 2) F. Radio Stations 2-sat + 神仙建模

    传送门 文章目录 题意: 思路: 题意: 你现在有ppp种电台,有nnn对关系(x,y)(x,y)(x,y)代表xxx电台或yyy电台中至少有一个,mmm对关系(x,y)(x,y)(x,y)代表xxx ...

  4. Codeforces Round #268 (Div. 1) C. Hack it! 数位dp + 构造数位

    传送门 文章目录 题意: 思路: 题意: 定义f(x)f(x)f(x)表示xxx的十进制下数位和,现在给你aaa,让你选一个区间[l,r][l,r][l,r],满足∑i=lrf(i)moda=0\su ...

  5. Codeforces Round #741 (Div. 2) E. Rescue Niwen! 字符串 + dp

    传送门 文章目录 题意: 思路: 题意: 给你一个串sss,定义其扩张串为s1,s1s2,...,s1s2..sn,s2,s2s3,...,sns_1,s_1s_2,...,s_1s_2..s_n,s ...

  6. Codeforces Round #740 (Div. 2) D2. Up the Strip dp + 分块优化 + 逆向思维

    传送门 文章目录 题意: 思路 题意: 有nnn个细胞,你初始在第nnn细胞上,假设你当前在xxx处,你每次可以进行如下两个操作: (1)(1)(1)选择[1,x−1][1,x-1][1,x−1]内一 ...

  7. Codeforces Round #727 (Div. 2) E. Game with Cards dp + 思维

    传送门 文章目录 题意: 思路: 题意: 初始有左右手,上面各有一个数字为000的卡牌,每次都有一个新卡kik_iki​,你可以将其放在左手或者右手,使两只手上的卡片范围在[ll,i,rl,i][l_ ...

  8. Codeforces Round #462 (Div. 2) C. A Twisty Movement dp + 思维转换

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为nnn的只包含1,21,21,2的序列aaa,你可以至多翻转一段区间,求翻转之后最长非递减子序列是多长. 思路: 考虑如果翻转的话,翻转的子区间 ...

  9. Codeforces Round #630 (Div. 2) F. Independent Set 树形dp

    传送门 文章目录 题意: 思路: 题意: 给你一棵树,求这棵树的边导出子图中独立集的数量和,独立集大小可以为000. 思路: 先考虑普通的独立集数量怎么求,无非就是分情况讨论一下选根还是不选根,而这个 ...

最新文章

  1. flex 单独一行_Flex布局从了解到使用只需5min
  2. SpringMVC启动后自动执行
  3. mysql --创建数据库
  4. 远程下层文档 正在打印_奉贤金汇高速复印机出租一站式服务,上海区专业高速打印机出租...
  5. Leetcode题库 136.只出现一次的数字(异或 C实现)
  6. 数据结构——树的理解路线(总)
  7. SpringBoot防止重复请求,重复表单提交超级简单的注解实现
  8. android 人脸识别边框_android Arcface人脸识别框/人脸抓拍框/人脸追踪框
  9. 智能解析php源码,PHP源码:XyPlayer在线影视v3.8二次智能解析源码
  10. JavaScript 代码判断:PC端和手机端
  11. Java JDK与JRE
  12. linux修改ip dhcp,Linux下在静态IP与动态DHCP之间切换的脚本
  13. 一文看尽科大讯飞年度发布会:医疗,是这家A股AI公司的新赛道
  14. Node.js快速文件服务器(通过HTTP的静态文件)
  15. 浅谈 JSON 那些被转义的字符们
  16. MOSS 2010:Visual Studio 2010开发体验(23)——编写自定义的BCS连接器
  17. css position, display, float 内联元素、块级元素
  18. R语言文本分析|利用jiebaR进行分词与词频统计
  19. odoo 12: 字段(Fields)
  20. Visual SLAM 笔记——李群和李代数详解

热门文章

  1. cortex-m3 R14(LR)寄存器的作用
  2. 网站镜像 mirror
  3. 字符串处理运用总结(2)(C++)
  4. GPT-4问世;LLM训练指南;纯浏览器跑Stable Diffusion
  5. 助手宝宝 v2007 是什么
  6. 前端进击笔记第二十二节 如何进行性能分析的自动化实现
  7. 运行代码,出现TypeError: fit() missing 1 required positional argument: 'y',对其进行修改
  8. 【ElementUI】el-table 多表格切换 导致 expands 展开行仍然会保留的问题(多表格切换时的表格渲染错乱)
  9. 各种开发测试相关免费学习书籍
  10. 小红书:将关闭带货笔记外链 直播带货外链功能不受影响