HDU 3943 K-th Nya Number(数位dp+二分)
来源:互联网 发布:淘宝上大拿韩代真品吗 编辑:程序博客网 时间:2024/04/30 04:29
Problem Description
Arcueid likes nya number very much.
A nya number is the number which has exactly X fours and Y sevens(If X=2 and Y=3 , 172441277 and 47770142 are nya numbers.But 14777 is not a nya number ,because it has only 1 four).
Now, Arcueid wants to know the K-th nya number which is greater than P and not greater than Q.
A nya number is the number which has exactly X fours and Y sevens(If X=2 and Y=3 , 172441277 and 47770142 are nya numbers.But 14777 is not a nya number ,because it has only 1 four).
Now, Arcueid wants to know the K-th nya number which is greater than P and not greater than Q.
Input
The first line contains a positive integer T (T<=100), indicates there are T test cases.
The second line contains 4 non-negative integers: P,Q,X and Y separated by spaces.
( 0<=X+Y<=20 , 0< P<=Q <2^63)
The third line contains an integer N(1<=N<=100).
Then here comes N queries.
Each of them contains an integer K_i (0<K_i <2^63).
The second line contains 4 non-negative integers: P,Q,X and Y separated by spaces.
( 0<=X+Y<=20 , 0< P<=Q <2^63)
The third line contains an integer N(1<=N<=100).
Then here comes N queries.
Each of them contains an integer K_i (0<K_i <2^63).
Output
For each test case, display its case number and then print N lines.
For each query, output a line contains an integer number, representing the K_i-th nya number in (P,Q].
If there is no such number,please output "Nya!"(without the quotes).
For each query, output a line contains an integer number, representing the K_i-th nya number in (P,Q].
If there is no such number,please output "Nya!"(without the quotes).
Sample Input
138 400 1 11012345678910
Sample Output
Case #1:4774147174247274347374Nya!Nya!
Author
hzhua
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<queue>#include<stack>#include<vector>#include<set>#include<map>#define L(x) (x<<1)#define R(x) (x<<1|1)#define MID(x,y) ((x+y)>>1)#define eps 1e-8typedef __int64 ll;#define fre(i,a,b) for(i = a; i <b; i++)#define free(i,b,a) for(i = b; i >= a;i--)#define mem(t, v) memset ((t) , v, sizeof(t))#define ssf(n) scanf("%s", n)#define sf(n) scanf("%d", &n)#define sff(a,b) scanf("%d %d", &a, &b)#define sfff(a,b,c) scanf("%d %d %d", &a, &b, &c)#define pf printf#define bug pf("Hi\n")using namespace std;#define INF 0x3f3f3f3f#define N 25ll dp[N][N][N];int bit[N];ll le,ri;int x,y,k;ll dfs(int pos,int prex,int prey,int bound){ if(pos==0) return prex==0&&prey==0; if(prex<0||prey<0) return 0; if(!bound&&dp[pos][prex][prey]!=-1) return dp[pos][prex][prey]; int up=bound ? bit[pos]:9; ll temp=0; int i; fre(i,0,up+1) { temp+=dfs(pos-1,prex-(i==4),prey-(i==7),bound&&i==up); } if(!bound) dp[pos][prex][prey]=temp; return temp;}ll fdd(ll n){ int len=0; while(n) { bit[++len]=n%10; n/=10; } return dfs(len,x,y,1);}void solve(){ ll prex=fdd(le); ll prey=fdd(ri); ll lle=le,rri=ri; ll mid,ans; k+=prex; while(lle<=rri) { mid=(lle+rri)>>1; if(fdd(mid)>=k){ans=mid;rri=mid-1;} elselle=mid+1; } pf("%I64d\n",ans);}int main(){int i,j,t,ca=0;sf(t);mem(dp,-1);while(t--){pf("Case #%d:\n",++ca);scanf("%I64d%I64d",&le,&ri);sff(x,y);ll numle=fdd(le);ll numri=fdd(ri);//pf("%I64d %I64d\n",numle,numri);int m;sf(m);while(m--){sf(k);if(numle+k>numri)puts("Nya!");elsesolve();}} return 0;}
0 0
- HDU 3943 K-th Nya Number(数位dp+二分)
- HDU 3943 K-th Nya Number(数位DP + 构造)
- HDU 3943 —— K-th Nya Number(数位DP,二分答案)
- K-th Nya Number (数位dp+二分)
- HDU 3943 K-th Nya Number (数位DP)
- [数位dp] hdu 3943 K-th Nya Number
- 【HDU】3943 K-th Nya Number 数位DP
- 【数位DP】【hdu 3943】K-th Nya Number
- HDU 3943 K-th Nya Number [数位DP]
- hdu 3943 K-th Nya Number 数位dp
- HDU3943 K-th Nya Number 数位DP
- HDU3943 K-th Nya Number(数位DP)
- hdu 3943 K-th Nya Number 2011多校11 数位dp
- 数位DP+二分搜索——HDU3943 K-th Nya Number
- 【HDU3943】【K-th Nya Number】【数位+二分找位置】
- 【数位DP】HDU3943[K-th Nya Number]题解
- hdu 3943 K-th Nya Number
- HDU 3943 K-th Nya Number
- sad法国特热
- NGUI的Input输入框限制中文字节数问题
- [编程之美]资格赛 B Palindrome
- 程序报错:Probable fatal error:No fonts found.
- C++11多线程——<future>之std::promise学习
- HDU 3943 K-th Nya Number(数位dp+二分)
- 神经网络与机器学习导言——神经元的统计模型和被看作有向图的神经网络
- C语言快排实现
- 查看APK的签名的方法
- gcj Round 1A 2015 Mushroom Monster
- UVa10361 - Automatic Poetry
- JAVA中Iterator的具体作用
- 如何使用npm发布Node.JS程序包
- 【举例1】Docker环境部署过程-以Wordpress个人博客系统搭建为例