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. Advapi32.dll 函数接口说明

    Advapi32.dll 函数接口说明             函数原型                               说明    AbortSystemShutDown         ...

  2. POJ2559 Largest Rectangle in a Histogram 单调栈

    题目大意 有一个直方图,其所有矩形的底均是1(以后简称小矩形).给出这些矩形的高度,求这些矩形的并集中存在的面积最大的矩形(简称大矩形)的面积. 题解 大矩形的高必然一边等于一个小矩形的高,另一边小于 ...

  3. Git 少用 Pull 多用 Fetch 和 Merge 【已翻译100%】【转】

    本文转载自:https://www.oschina.net/translate/git-fetch-and-merge?lang=chs&page=1# 本文有点长而且有点乱,但就像Mark ...

  4. 0507-php独立环境的安装与配置

    1.在一个纯英文目录下新建三个文件夹 2.安装apache(选择好版本) 过程中该填的按格式填好,其余的只更改安装目录即可 如果报错1901是安装版本的问题. 检查:安装完成后localhost打开为 ...

  5. Python类属性访问的魔法方法

    Python类属性访问的魔法方法: 1. __getattr__(self, name)- 定义当用户试图获取一个不存在的属性时的行为 2. __getattribute__(self, name)- ...

  6. 【JAVA练习】- 接收三个班各四个学员的成绩,算平均分

    package class_average; import java.util.Scanner;//调用Scanner类 public class average { public static vo ...

  7. android AIDL示例代码(mark下)

    1.demo结构图 2.ipcclient Book类. package com.mu.guoxw.ipcclient; import android.os.Parcel; import androi ...

  8. vegas pro 15解决导入的视频和音频有噪声问题,亲测可行

    中文步骤: 按住Shift->点击选项->首选项,松开Shift 点击右上角"内部"选项卡,在最下面的搜索栏输入SO4 找到第二项Enable So4 Compound ...

  9. MSP430之software development flow

    MSP430 software development flow. 1) The shaded portion highlights the most common development path; ...

  10. 身份认证防止重放攻击的challenge-response方法

    或者叫询问-应答机制. 基于挑战/应答(Challenge/Response)方式的身份认证系统就是每次认证时认证服务器端都给客户端发送一个不同的"挑战"字串,客户端程序收到这个& ...