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. 编程算法 - 和为s的连续正整数序列 代码(C)

    和为s的连续正整数序列 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入一个正数s, 打印出全部和为s的连续正数序列(至少含有两个数). 起 ...

  2. Ext.tree.Panel实现单选,多选

    Extjs var productCategoryTreeLookUpFn = function(callback) { var productCategoryLookUpWindow; var pr ...

  3. 蒟蒻的trie树专题

    POJ 3630 Phone List: 模板 ///meek #include<bits/stdc++.h> using namespace std; using namespace s ...

  4. 组合数们&&错排&&容斥原理

    最近做了不少的组合数的题这里简单总结一下下 1.n,m很大p很小 且p为素数p要1e7以下的 可以接受On的时间和空间然后预处理阶乘 Lucas定理来做以下是代码 /*Hdu3037 Saving B ...

  5. 数据通讯与网络 第五版第24章 传输层协议-UDP协议部分要点

    24.1 介绍 本章节主要集中于传输层协议的解读,图24.1展示TCP.UDP.SCTP在TCP\IP协议栈的位置 24.1.1 服务(Service) 每个协议都提供不同的服务,所以应该合理正确的使 ...

  6. NYOJ999 师傅又被妖怪抓走了

    只记得当下的眼疼 , ok 各种数据也试了 , 就是 他娘的不对 , 我也是醉了 . 也是日了最野的狗 附上日了哮天犬的代码 , 这个题 先放放, 一段时间后再试试 , 明天开始状态压缩吧 .为期两天 ...

  7. Android Studio and Gradle安装心得

    安装基于Eclipse 的ADT一段时间,感觉确实有很多功能不足,通过网上资料,决定改向AS. AS下载了最新的2.3版本,它不分64位与32位,网上说有单独版是瞎扯蛋.只要启动不同的EXE就行了. ...

  8. OpenVX

    OpenVX openvx  1. 编译 尝试编译openvx_sample,下载相关代码. 下载的sample code直接使用make可以生成libopenvx.so. 使用python Buil ...

  9. PL/SQL之基础篇

    参考文献:<Oracle完全学习手册>第11章 1.PL/SQL概述 PL/SQL(Procedure Language/Structuer Query Language)是Oracle对 ...

  10. 使用curl 上传文件,multipart/form-data

    使用curl 上传文件,multipart/form-data 1. 不使用-F,curl内置multipart/form-data功能: 2. 文件内容与真实数据无关,用abc代替数据,依然可以上传 ...