博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4996 Revenge of LIS(DP)
阅读量:6459 次
发布时间:2019-06-23

本文共 573 字,大约阅读时间需要 1 分钟。

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4996

题意:求1到n的全排列中,有多少个排列的最长上升子列长度为K?

思路:对于当前的最长上升子列,我们记录最后一个值得最小值即可。因此我们用2^n的状态表示当前最长上升子列中使用了哪些数字,且字典序最小。前n-1个数字之后,我们枚举最后一个位置的数字为[1,n]中每个数字,设为k,那么我们只要将前面[1,n-1]组成的数列中所有大于等于k的数字加一即可。

int n,k;i64 f[22][22];i64 dp[1<<22],tmp[1<<22];int cal(int x){    int ans=0;    int i;    for(i=0;i<20;i++) if(x&(1<
=k) c[t]++; c[tot++]=k; for(t=0;t
k) { c[t]=k; break; } int st=0; for(t=0;t

 

转载地址:http://nkazo.baihongyu.com/

你可能感兴趣的文章
centos压缩包安装mysql_Centos安装Mysql压缩包方式
查看>>
宝塔mysql安装到挂载盘_宝塔手动挂载数据盘
查看>>
hbase put mysql_HBase Filter使用方法(三)------批量put导入
查看>>
c# mysql 二进制图片_c# 读数据库二进制流到图片
查看>>
putty怎么查看MySQL密码_putty mysql修改密码
查看>>
java模拟http_java模拟http服务器
查看>>
java 查看内存占用_查看JVM内存使用状况
查看>>
java 字符串不为空_Java中判断String不为空的问题
查看>>
java中的http协议_java中Http协议的使用
查看>>
java 合成模式_《JAVA与模式》之合成模式
查看>>
java snippet_snippet,让你编码效率翻倍
查看>>
java cookie 覆盖_Java 会话技术 之cookie
查看>>
java 概率分布_将概率分布拟合到数据并找到它的累积分布函数
查看>>
java this()函数_java中this关键字怎么使用?
查看>>
java split limit_java split(String regex, int limit) 的使用
查看>>
java校园导航_校园导航的设计与实现(SSH,MySQL)(含录像)
查看>>
archlinux java环境_Arch Linux快速配置Java环境变量
查看>>
jfreechart java_java jfreechart
查看>>
python键盘输入转换为列表_Python键盘输入转换为列表的实例
查看>>
java字符是否数字_Java如何检查字符是否代表数字?
查看>>