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. Android 组件ContentProvider

    Android 组件ContentProvider Android的数据存储有五种方式Shared Preferences.网络存储.文件存储.外储存储.SQLite,一般这些存储都仅仅是在单独的一个 ...

  2. mysql 日期计算,今天,明天,本周,下周,本月,下月

    --今天 DATE_FORMAT(BIRTH_DATE,'%Y-%m-%d') = CURDATE() --明天 DATE_FORMAT(BIRTH_DATE,'%Y-%m-%d') = TIMEST ...

  3. ZOJ 2314 无源汇可行流(输出方案)

    Time Limit: 5 Seconds      Memory Limit: 32768 KB      Special Judge The terrorist group leaded by a ...

  4. 【BZOJ 1572】 工作安排

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1572 [算法] 贪心 先将这些工作按截至时间排序 建立一个小根堆,当决策是否完成一项 ...

  5. 96.extjs 页面

    1.登录js /** * @author sux * @desc 登录 */ Ext.onReady(function(){ Ext.QuickTips.init(); //错误信息显示必须 var ...

  6. JavaWEB开发入门

    1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: •静态web资源(如html 页面 ...

  7. php的self this parent的区别

    {一}PHP中this,self,parent的区别之一this篇 面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能.利用OOP的思想进行P ...

  8. 快速搭建ELK集中化日志管理平台

    由于我们的项目是分布式,服务分布于多个服务器上,每次查看日志都要登录不同服务器查看,而且查看起来还比较麻烦,老大让搭一个集中化日志管理的东西,然后就在网上找到了这个东西ELK ELK就是elastic ...

  9. 【Python】循环语句

    while循环 当条件成立时,循环体的内容可以一直执行,但是避免死循环,需要有一个跳出循环的条件才行. for循环 遍历任何序列(列表和字符串)中的每一个元素 >>> a = [&q ...

  10. 题解报告:hdu 1847 Good Luck in CET-4 Everybody!(入门SG值)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1847 Problem Description 大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧 ...