题意:求最少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;
}

[JZOJ 5600] Arg的更多相关文章

  1. QString::​arg的用法

    1.用法示例1 String str = QString("%1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11").arg("1"," ...

  2. T2 Func<in T1,out T2>(T1 arg)

    委托调用方法的4种方式. using System; using System.Collections.Generic; namespace ConsoleApplication1 { delegat ...

  3. rabbitmq inequivalent arg 'x-message-ttl' for queue 'QUEUE_NAME' in vhost '/'异常解决

    中午调整了一台应用服务的mq ttl参数后,重启时出现如下异常: Caused by: com.rabbitmq.client.AlreadyClosedException: channel is a ...

  4. 关于QString中的arg()函数使用方法

    例:正确做法:ui->label->setText(QString("Processingfile%1").arg(index));错误做法: ui->label ...

  5. public static void main(String arg[])

      该语句定义了main方法. main方法是程序执行的入口,所有的java程序都必须具备一个main()方法,而且必须按照如上的格式来定义. 不具有main方法的类可以编译,但不能执行.因为它没有m ...

  6. chr()、unichr()和ord(),全半角转换,ValueError: unichr() arg not in range() (wide Python build)

    chr().unichr()和ord() chr()函数用一个范围在range(256)内的(就是0-255)整数作参数,返回一个对应的字符. unichr()跟它一样,只不过返回的是 Unicode ...

  7. 压缩感知中的数学知识:稀疏、范数、符号arg min

    转自:http://blog.csdn.net/jbb0523/article/details/40262629 1.稀疏:什么是K稀疏呢? 在压缩感知里经常提到 "K稀疏" 的概 ...

  8. (jzoj snow的追寻)线段树维护树的直径

    jzoj snow的追寻 DFS序上搞 合并暴力和,记录最长链和当前最远点,距离跑LCA # include <stdio.h> # include <stdlib.h> # ...

  9. [jzoj]3506.【NOIP2013模拟11.4A组】善良的精灵(fairy)(深度优先生成树)

    Link https://jzoj.net/senior/#main/show/3506 Description 从前有一个善良的精灵. 一天,一个年轻人B找到她并请他预言他的未来.这个精灵透过他的水 ...

随机推荐

  1. bootstrap 标签页的使用(tab)

    <!DOCTYPE html> <html> <head> <title></title> <link rel="style ...

  2. JPA中遇到一些异常的分析与解决

    Spring Data JPA踩坑到填坑:1 JPA多对多关 //作者表 //书籍表 Book和Author是多对多关系 先放两张图做个说明:Jpa底层依赖于hibernate,hibernate默认 ...

  3. EXCEL设置三级下拉框

    EXCEL设置三级下拉框 1.添加下拉框数据源 公式--->指定 公式--->名称管理器 2.设置第一级下拉框的值 3.第一级下拉框选出一个值 4.设置第二级下拉框(INDIRECT($A ...

  4. 【dart学习】-- Dart之函数

    1. 指定返回值得函数 /** * 无返回值的函数 * params: 可以是任意类型(var和Object类型也可以任意类型). 当然这里的参数类型你可以随意指定我这里已dynamic为例 * 参数 ...

  5. 基于mybatis-plus的代码生成

    基于mybatis-plus的代码生成 前言 随着敏捷开发模式的推广,伴着日益增长的需求,日常工作中我们越来越注重效率和便捷性.今天我们就来探讨下如何自动生成代码,准确地说是如何依赖数据库生成我们的e ...

  6. html标签中的 MIME 类型

    1.<script type="text/x-template">  MIME 类型 2.MIME类型是什么 : http://www.w3school.com.cn/ ...

  7. int在64位操作系统中占多少位?

    仍然是32位. 曾经是这样的:16位操作系统中,int 占16位:在32位操作系统中,int 占32位.但是现在人们已经习惯了 int 占32位,因此在64位操作系统中,int 仍为32位.64位整型 ...

  8. 命令行启动tomcat

    windows下进入CMD启动.window+r打开命令窗口具体步骤:1:在命令行中输入Tomcat安装的磁盘:E:2:进入Tomcat的主安装目录:cd Tomcat3:进入bin文件夹:cd bi ...

  9. 2019 年百度之星·程序设计大赛 - 初赛四 1001 Strassen

    比赛链接:2019 年百度之星·程序设计大赛 - 初赛四 题目链接:HDU-6719 Strassen C++ 没写出来 于是直接上 Java 暴力. 好像可以用 __int128. import j ...

  10. cesium中divPoint展示数据

    cesium中divPoint展示数据 在用点击面获取位置信息的时候,会弹出一个divPoint框,用来展示这个面的属性信息:或者位置信息. 代码如下: var handlerClick = new ...