题意:求最少LIS覆盖...

思路:

计算\(LIS\)时我们一般用\(dp\)表示到当先位置时以当前位置结尾的\(LIS\)最长长度。

那么这个数组保证单调不降,我们考虑二进制表示。

然后就是转移了...

不过蜜汁\(RE\)啊,自测能过...

#include <bits/stdc++.h>
using namespace std;
inline int read(){
int q=0,f=1;char ch = getchar();
while(!isdigit(ch)){
if(ch=='-')f=-1;ch=getchar();
}
while(isdigit(ch)){
q = q * 10 + ch - '0';
ch = getchar();
}
return q*f;
}
int n;
int ans;
int f[20010000];
int c[20];int m;
int wtf[20];
int a[20];
int c2[20];
inline void dfs(int x,int lim,int k) {
if(x > n) {
if(!lim) ans += f[k];
return;
}
k += c[x - 1];
dfs(x + 1,lim,k);
k += c[x - 1];
dfs(x + 1,lim - 1,k);
} int main () {
freopen("Arg.in","r",stdin);
freopen("Arg.out","w",stdout);
scanf("%d %d",&n,&m);
for(int i = 1;i <= m; ++i) {
scanf("%d",&a[i]);
}
c[0] = c2[0] = 1;
for(int i = 1;i <= n; ++i) {
c[i] = c[i - 1] * 3;
c2[i] = c2[i - 1] * 2;
}
f[0] = 1;
for(int i = 0;i <= c2[n] - 2; ++i) {
bool ok = 1;
bool tag = 1;
for(int j = 1;j <= m; ++j) {
if((i & c2[a[j] - 1]) == 0) {
ok = 0;
}
else if(!ok) {
tag = 0;
break;
}
}
if(tag) {
for(int ii = i;1;ii = (ii - 1) & i) {
int v = 0;
for(int j = 1;j <= n; ++j) {
if(ii & c2[j - 1]) v += c[j - 1];
if(i & c2[j - 1]) v += c[j - 1];
}
if(f[v]) {
for(int j = 1;j <= n; ++j) {
if(v / c[j - 1] % 3 == 0) {
int V = v + 2 * c[j - 1];
for(int k = j + 1;k <= n; ++k) {
if(V / c[k - 1] % 3 == 2) {
V -= c[k - 1];
break;
}
}
f[V] += f[v];
}
}
}
if(ii == 0) break;
}
}
}
dfs(1,m,0);
printf("%d\n",ans);
return 0;
}

最新文章

  1. 学习Python的三种境界
  2. 【巩固】CSS3的animation基础
  3. POJ3422 Kaka&#39;s Matrix Travels
  4. bzoj4547 小奇的集合
  5. Java :List
  6. Windows Server 2016-图形化备份域控制器
  7. 自动测试工具(Jmeter,qtp等)
  8. keepalived 安装篇-官方文档
  9. Scarpy 起始url 自定义代理 自定义去重规则
  10. Linux NFS挂载
  11. genymotion 模拟器内安装软件 the app contains ARM native code and your devices cannot run ARM instructions
  12. Docker(4):Dockerfile命令一览
  13. Angular 过滤器的简单使用
  14. 将Excel中的数据批量导入数据库表
  15. 软件工程各阶段的UML图
  16. laravel路由不生效,404,除了/ 都不行,关于nginx环境下laravel除了默认路由都出现404报错的处理方法
  17. 获取控制台窗口句柄GetConsoleWindow
  18. Spark 快速理解
  19. Unity 游戏框架搭建 2018 (一) 架构、框架与 QFramework 简介
  20. Hadoop 遇到的问题集

热门文章

  1. 【书上讲解】最大m段子段和问题
  2. Python_day01——变量
  3. Mac版本navicat premium彻底卸载的终端命令
  4. 为什么 Go 语言把类型放在后面
  5. CSS:CSS 伪类(Pseudo-classes)
  6. CSS:CSS 分组 和 嵌套 选择器
  7. Linux之nginx-uwagi-django 搭建
  8. 3、Cookie与Session之间有哪些区别或者是优缺点?
  9. 用scala 实现top N 排名
  10. mysql高效导入导出load data [infile][outfile]用法