博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU - 4352 XHXJ's LIS
阅读量:5252 次
发布时间:2019-06-14

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

题意:

  给定范围[L, R] 和 k(1~10)求范围内数位的LIS(最长上升子序列)等于k的数的个数。

思路:

  普通的LIS做法是对于当前的数,在模拟数列中找到第一个比他大的并替换掉。

  在数位DP中需要状态压缩,其实对于每个数只有两种状态,即在模拟数列中或者不在。那么就可以用二进制(1<<10)来表示总的状态。

#include 
using namespace std;typedef long long ll;int t, k;int bits[20];ll l, r;ll dp[20][1<<10][11];bool judge(int state) { int cnt = 0; for(int i = 0; i < 10; i++) if(state & (1<
View Code

 

转载于:https://www.cnblogs.com/Pneuis/p/8120577.html

你可能感兴趣的文章
android主流开源库
查看>>
AX 2009 Grid控件下多选行
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
perl 学习笔记
查看>>
31 Days of Windows Phone
查看>>
poj 1184(聪明的打字员)
查看>>
Ubuntu下面安装eclipse for c++
查看>>
C#压缩或解压(rar和zip文件)
查看>>
让IE浏览器支持CSS3圆角属性的方法
查看>>
巡风源码阅读与分析---nascan.py
查看>>
LiveBinding应用 dataBind 数据绑定
查看>>
Linux重定向: > 和 &> 区别
查看>>
nginx修改内核参数
查看>>
【欧拉函数模板题】最大公约数
查看>>
C 筛选法找素数
查看>>
TCP为什么需要3次握手与4次挥手(转载)
查看>>
IOC容器
查看>>