HDU 4352 XHXJ's LIS
奇妙的题。
你先得会另外一个nlogn的LIS算法。(我一直只会BIT。。。。。)
然后维护下每个数码作为结尾出现过没有就完了。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
long long t,l,r,k,ret=,bit[];
struct pnt
{
long long k[];
}dp[][<<];
void reset()
{
for (long long i=;i<=;i++)
for (long long j=;j<(<<);j++)
for (long long k=;k<=;k++)
dp[i][j].k[k]=-;
}
void get_bit(long long x)
{
ret=;
while (x) {bit[++ret]=x%;x/=;}
}
long long bit_cnt(long long x)
{
long long ret=;
while (x) {if (x&) ret++;x>>=;}
return ret;
}
long long get_sets(long long sets,long long x)
{
if (sets&(<<x)) return sets;
sets|=(<<x);
for (long long i=x+;i<=;i++)
{
if (sets&(<<i))
{
sets^=(<<i);
return sets;
}
}
return sets;
}
pnt comb(pnt x,pnt y)
{
for (long long i=;i<=;i++)
x.k[i]+=y.k[i];
return x;
}
pnt dfs(long long pos,long long sets,bool flag)
{
if (!pos)
{
long long now=bit_cnt(sets);pnt ret;
for (long long i=;i<=;i++)
{
if (i==now) ret.k[i]=;
else ret.k[i]=;
}
return ret;
}
if ((!flag) && (~dp[pos][sets].k[])) return dp[pos][sets];
pnt ans;long long up=flag?bit[pos]:;
for (long long i=;i<=;i++) ans.k[i]=;
for (long long i=;i<=up;i++)
ans=comb(ans,dfs(pos-,get_sets(sets,i),flag&&i==up));
if (!flag) dp[pos][sets]=ans;
return ans;
}
long long ask(long long x)
{
if (!x) return ;
get_bit(x);long long ans=;
for (long long i=;i<=ret-;i++)
for (long long j=;j<=;j++)
ans+=dfs(i-,<<j,).k[k];
for (long long j=;j<=bit[ret]-;j++)
ans+=dfs(ret-,<<j,).k[k];
ans+=dfs(ret-,<<bit[ret],).k[k];
return ans;
}
void work(long long x)
{
scanf("%lld%lld%lld",&l,&r,&k);
printf("Case #%lld: %lld\n",x,ask(r)-ask(l-));
}
int main()
{
scanf("%lld",&t);reset();
for (long long i=;i<=t;i++) work(i);
return ;
}
HDU 4352 XHXJ's LIS的更多相关文章
- HDU 4352 XHXJ's LIS 数位dp lis
目录 题目链接 题解 代码 题目链接 HDU 4352 XHXJ's LIS 题解 对于lis求的过程 对一个数列,都可以用nlogn的方法来的到它的一个可行lis 对这个logn的方法求解lis时用 ...
- HDU 4352 XHXJ's LIS HDU(数位DP)
HDU 4352 XHXJ's LIS HDU 题目大意 给你L到R区间,和一个数字K,然后让你求L到R区间之内满足最长上升子序列长度为K的数字有多少个 solution 简洁明了的题意总是让人无从下 ...
- hdu 4352 XHXJ's LIS 数位dp+状态压缩
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4352 XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others ...
- HDU 4352 - XHXJ's LIS - [数位DP][LIS问题]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4352 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
- hdu 4352 XHXJ's LIS (数位dp+状态压缩)
Description #define xhxj (Xin Hang senior sister(学姐)) If you do not know xhxj, then carefully readin ...
- HDU 4352 XHXJ's LIS HDU 题解
题目 #define xhxj (Xin Hang senior sister(学姐)) If you do not know xhxj, then carefully reading the ent ...
- hdu 4352 XHXJ's LIS(数位dp+状压)
Problem Description #define xhxj (Xin Hang senior sister(学姐)) If you do not know xhxj, then carefull ...
- hdu 4352 "XHXJ's LIS"(数位DP+状压DP+LIS)
传送门 参考博文: [1]:http://www.voidcn.com/article/p-ehojgauy-ot.html 题解: 将数字num字符串化: 求[L,R]区间最长上升子序列长度为 K ...
- HDU.4352.XHXJ's LIS(数位DP 状压 LIS)
题目链接 \(Description\) 求\([l,r]\)中有多少个数,满足把这个数的每一位从高位到低位写下来,其LIS长度为\(k\). \(Solution\) 数位DP. 至于怎么求LIS, ...
随机推荐
- WIFI驱动的移植 realtek 8188
一般我们拿到的android源代码中wifi应用层部分是好的, 主要是wifi芯片的驱动要移植并添加进去. wifi驱动的移植, 以realtek的8188etv为例到官网下载相应的驱动, 解压后可以 ...
- hibernate映射的 关联关系:有 一对多关联关系,一对一关联关系,多对多关联关系,继承关系
hibernate环境配置:导包.... 单向n-1:单向 n-1 关联只需从 n 的一端可以访问 1 的一端 <many-to-one> 元素来映射组成关系: name: 设定待映射的持 ...
- c#邮箱发送和接收
简洁版发送: //web.config ---文件 <?xml version="1.0" encoding="utf-8"?> <!-- 有 ...
- 网页设计中常用的19个Web安全字体
来自http://www.jb51.net 在Web编码中,CSS默认应用的Web字体是有限的,虽然在新版本的CSS3,我们可以通过新增的@font-face属性来引入特殊的浏览器加载字体.但多数情况 ...
- 快速排序(python版)
#!coding:utf8 def quicksort(list_num, left, right): if left > right: return low = left high = rig ...
- qq2440启动linux后插入u盘出现usb 1-1: device descriptor read/64, error -110,usb 1-1: device not accepting address 8, error -110
上位机:ubuntu14.04 64bit 下位机:qq2440 交叉编译器:arm-linux-gcc 3.4.1 下位机使用的linux内核版本:kernel2.6.13 1.插入u盘时错误信息如 ...
- 程序设计入门——C语言 第3周编程练习 2 数字特征值(5分)
2 数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作 ...
- servlet学习笔记_1
一.动态页面和静态页面 动态页面&静态页面:如果浏览器在不同时刻不同条件下访问web服务器的某个页面,浏览器所获得的页面内容会发生变化,那么这种页面称之为动态页面.动态页面和静态页面的区别在于 ...
- CSS 3 颜色表示法
1,Color Name:red 优点:方便记忆 缺点:数量少不支持透明度 2,HEX方式:#FFFFFF 优点:颜色种类多 缺点:换算复杂需要借助工具 3,RGB方式:rgb(25 ...
- Android之获取string.xml文件里面的方法
获取string.xml文件里面的方法 在此做个笔记: 1.在AndroidManifest.xml与layout等xml文件里: android:text="@string/resourc ...