XHXJ's LIS

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Problem Description
#define xhxj (Xin Hang senior sister(学姐))
If you do not know xhxj, then carefully reading the entire description is very important.
As the strongest fighting force in UESTC, xhxj grew up in Jintang, a border town of Chengdu.
Like many god cattles, xhxj has a legendary life:
2010.04,
had not yet begun to learn the algorithm, xhxj won the second prize in
the university contest. And in this fall, xhxj got one gold medal and
one silver medal of regional contest. In the next year's summer, xhxj
was invited to Beijing to attend the astar onsite. A few months later,
xhxj got two gold medals and was also qualified for world's final.
However, xhxj was defeated by zhymaoiing in the competition that
determined who would go to the world's final(there is only one team for
every university to send to the world's final) .Now, xhxj is much more
stronger than ever,and she will go to the dreaming country to compete in
TCO final.
As you see, xhxj always keeps a short hair(reasons
unknown), so she looks like a boy( I will not tell you she is actually a
lovely girl), wearing yellow T-shirt. When she is not talking, her
round face feels very lovely, attracting others to touch her face
gently。Unlike God Luo's, another UESTC god cattle who has cool and noble
charm, xhxj is quite approachable, lively, clever. On the other
hand,xhxj is very sensitive to the beautiful properties, "this problem
has a very good properties",she always said that after ACing a very hard
problem. She often helps in finding solutions, even though she is not
good at the problems of that type.
Xhxj loves many games such
as,Dota, ocg, mahjong, Starcraft 2, Diablo 3.etc,if you can beat her in
any game above, you will get her admire and become a god cattle. She is
very concerned with her younger schoolfellows, if she saw someone on a
DOTA platform, she would say: "Why do not you go to improve your
programming skill". When she receives sincere compliments from others,
she would say modestly: "Please don’t flatter at me.(Please don't
black)."As she will graduate after no more than one year, xhxj also
wants to fall in love. However, the man in her dreams has not yet
appeared, so she now prefers girls.
Another hobby of xhxj is
yy(speculation) some magical problems to discover the special
properties. For example, when she see a number, she would think whether
the digits of a number are strictly increasing. If you consider the
number as a string and can get a longest strictly increasing subsequence
the length of which is equal to k, the power of this number is k.. It
is very simple to determine a single number’s power, but is it also easy
to solve this problem with the numbers within an interval? xhxj has a
little tired,she want a god cattle to help her solve this problem,the
problem is: Determine how many numbers have the power value k in [L,R]
in O(1)time.
For the first one to solve this problem,xhxj will upgrade 20 favorability rate。
 
Input
First a integer T(T<=10000),then T lines follow, every line has three positive integer L,R,K.(
0<L<=R<263-1 and 1<=K<=10).
 
Output
For each query, print "Case #t: ans" in a line, in which t is the number of the test case starting from 1 and ans is the answer.
 
Sample Input
1
123 321 2
 
Sample Output
Case #1: 139
分析:一开始想当前位置,当前出现了哪些数,当前LIS是多少为同一个状态,不过不对;
   考虑LIS是怎么求的,有nlogn做法,更新出现过的第一个大于等于自己的值;
   所以dp[i][j][k]三维分别表示当前位置,当前LIS里的数,剩余剩余所需长度;
代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <climits>
#include <cstring>
#include <string>
#include <set>
#include <bitset>
#include <map>
#include <queue>
#include <stack>
#include <vector>
#define rep(i,m,n) for(i=m;i<=n;i++)
#define mod 1000000007
#define inf 0x3f3f3f3f
#define vi vector<int>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ll long long
#define pi acos(-1.0)
#define pii pair<int,int>
#define piii pair<int,pair<ll,ll> >
#define sys system("pause")
const int maxn=1e5+;
const int N=5e4+;
const int M=N**;
using namespace std;
inline ll gcd(ll p,ll q){return q==?p:gcd(q,p%q);}
inline ll qpow(ll p,ll q){ll f=;while(q){if(q&)f=f*p;p=p*p;q>>=;}return f;}
inline void umax(ll &p,ll q){if(p<q)p=q;}
inline void umin(ll &p,ll q){if(p>q)p=q;}
int n,m,k,t,num[],pos,cas;
ll dp[][<<][],p,q;
ll dfs(int pos,int x,int y,int z,int v)
{
if(pos<)return y==;
if(y<)return ;
if(z&&v&&dp[pos][x][y]!=-)return dp[pos][x][y];
int now=z?:num[pos],i,j;
ll ret=;
rep(i,,now)
{
rep(j,i,)if(x>>j&)break;
if(!i&&!v)ret+=dfs(pos-,x,y,z||i<num[pos],v||i);
else if(j==)ret+=dfs(pos-,x|(<<i),y-,z||i<num[pos],v||i);
else ret+=dfs(pos-,x^(<<j)^(<<i),y,z||i<num[pos],v||i);
}
return z&&v?dp[pos][x][y]=ret:ret;
}
ll gao(ll x)
{
pos=;
while(x)num[pos++]=x%,x/=;
return dfs(pos-,,k,,);
}
int main()
{
int i,j;
memset(dp,-,sizeof(dp));
scanf("%d",&t);
while(t--)
{
scanf("%lld%lld%d",&p,&q,&k);
printf("Case #%d: %lld\n",++cas,gao(q)-gao(p-));
}
return ;
}
 

XHXJ's LIS的更多相关文章

  1. 【HDU 4352】 XHXJ's LIS (数位DP+状态压缩+LIS)

    XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  2. HDU 4352 XHXJ's LIS 数位dp lis

    目录 题目链接 题解 代码 题目链接 HDU 4352 XHXJ's LIS 题解 对于lis求的过程 对一个数列,都可以用nlogn的方法来的到它的一个可行lis 对这个logn的方法求解lis时用 ...

  3. XHXJ's LIS(数位DP)

    XHXJ's LIS http://acm.hdu.edu.cn/showproblem.php?pid=4352 Time Limit: 2000/1000 MS (Java/Others)     ...

  4. 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 ...

  5. hdu4352 XHXJ's LIS(数位dp)

    题目传送门 XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  6. HDU 4352 XHXJ's LIS HDU(数位DP)

    HDU 4352 XHXJ's LIS HDU 题目大意 给你L到R区间,和一个数字K,然后让你求L到R区间之内满足最长上升子序列长度为K的数字有多少个 solution 简洁明了的题意总是让人无从下 ...

  7. 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 ...

  8. hdu 4352 XHXJ's LIS (数位dp+状态压缩)

    Description #define xhxj (Xin Hang senior sister(学姐)) If you do not know xhxj, then carefully readin ...

  9. 【数位dp+状压】XHXJ 's LIS

    题目 define xhxj (Xin Hang senior sister(学姐)) If you do not know xhxj, then carefully reading the enti ...

随机推荐

  1. HDU 4259(Double Dealing-lcm(x1..xn)=lcm(x1,lcm(x2..xn))

    Double Dealing Time Limit: 50000/20000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. NS3网络仿真(5): 数据包分析

    快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 在我们生成的xml文件里.是不包括生成的数据包的数据的,在我们的脚本中加入以下的语句: point ...

  3. 2本Hadoop技术内幕电子书百度网盘下载:深入理解MapReduce架构设计与实现原理、深入解析Hadoop Common和HDFS架构设计与实现原理

    这是我收集的两本关于Hadoop的书,高清PDF版,在此和大家分享: 1.<Hadoop技术内幕:深入理解MapReduce架构设计与实现原理>董西成 著  机械工业出版社2013年5月出 ...

  4. B1192 [HNOI2006]超级英雄Hero 二分图匹配

    先检讨一下,前一段时间开学,做题懒得发博客,也不总结...现在捡起来. 这个题一看是裸的二分图匹配,但是仔细一看还有一些区别,就是必须要连续的连接,否则直接退出.因为前一道题答不出来的话后面的题就没有 ...

  5. bzoj3110 [Zjoi2013]K大数查询——线段树套线段树

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3110 外层权值线段树套内层区间线段树: 之所以外层权值内层区间,是因为区间线段树需要标记下传 ...

  6. Cracking the Coding Interview 6.5

    There is a building of 100 floors. If an egg drops from the Nth floor or above, it will break. If it ...

  7. asp.net限制了上传文件大小为..M,解决方法

    asp.net限制了上传文件大小为4M,在:在web.config里加下面一句,加在<System.web></System.web>之间如下:<system.web&g ...

  8. P1146 硬币翻转

    题目描述 在桌面上有一排硬币,共N枚,每一枚硬币均为正面朝上.现在要把所有的硬币翻转成反面朝上,规则是每次可翻转任意N-1枚硬币(正面向上的被翻转为反面向上,反之亦然).求一个最短的操作序列(将每次翻 ...

  9. (转) 前端模块化:CommonJS,AMD,CMD,ES6

    模块化的开发方式可以提高代码复用率,方便进行代码的管理.通常一个文件就是一个模块,有自己的作用域,只向外暴露特定的变量和函数.目前流行的js模块化规范有CommonJS.AMD.CMD以及ES6的模块 ...

  10. iconfont在ios(safari)中的坑

    最近公司决定将项目图标整体迁移到iconfont,按网上常规方法,在安卓.pc端都没问题,唯独在ios的safari浏览器及微信内置浏览器中,iconfont始终在正常位置向下偏移,导致图标错乱. 网 ...