hdu 5676
来源:互联网 发布:水果竞猜php源码 编辑:程序博客网 时间:2024/06/07 17:31
ztr loves lucky numbers
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 530 Accepted Submission(s): 224
Problem Description
ztr loves lucky numbers. Everybody knows that positive integers are lucky if their decimal representation doesn't contain digits other than 4 and 7. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not.
Lucky number is super lucky if it's decimal representation contains equal amount of digits 4 and 7. For example, numbers 47, 7744, 474477 are super lucky and 4, 744, 467 are not.
One day ztr came across a positive integer n. Help him to find the least super lucky number which is not less than n.
Lucky number is super lucky if it's decimal representation contains equal amount of digits 4 and 7. For example, numbers 47, 7744, 474477 are super lucky and 4, 744, 467 are not.
One day ztr came across a positive integer n. Help him to find the least super lucky number which is not less than n.
Input
There are T(1≤n≤105) cases
For each cases:
The only line contains a positive integern(1≤n≤1018) . This number doesn't have leading zeroes.
For each cases:
The only line contains a positive integer
Output
For each cases
Output the answer
Output the answer
Sample Input
2450047
Sample Output
474747
Source
BestCoder Round #82 (div.2)
Recommend
wange2014 | We have carefully selected several similar problems for you: 5679 5678 5677 5675 5674
bfs打表二分查找
accode:
#pragma warning(disable:4786)//使命名长度不受限制#pragma comment(linker, "/STACK:102400000,102400000")//手工开栈#include <map>#include <set>#include <queue>#include <cmath>#include <stack>#include <cctype>#include <cstdio>#include <cstring>#include <stdlib.h>#include <iostream>#include <algorithm>#define rd(x) scanf("%d",&x)#define rd2(x,y) scanf("%d%d",&x,&y)#define rd3(x,y,z) scanf("%d%d%d,&x,&y,&z)#define rdl(x) scanf("%I64d,&x);#define rds(x) scanf("%s",x)#define rdc(x) scanf("%c",&x)#define ll long long int#define ull unsigned long long#define maxn 9999999#define mod 1000000007#define INF 77777777777777778LL#define FOR(i,f_start,f_end) for(int i=f_start;i<=f_end;++i)#define MT(x,i) memset(x,i,sizeof(x))#define PI acos(-1.0)#define E exp(1)#define eps 1e-8ll gcd(ll a,ll b){return b==0?a:gcd(b,a%b);}ll mul(ll a,ll b,ll p){ll sum=0;for(;b;a=(a+a)%p,b>>=1)if(b&1)sum=(sum+a)%p;return sum;}inline void Scan(int &x) { char c;while((c=getchar())<'0' || c>'9');x=c-'0'; while((c=getchar())>='0' && c<='9') x=(x<<3)+(x<<1)+c-'0';}using namespace std;ll dp[maxn];int tot=0;void bfs(){ ll n,t,m; queue<long long>q; q.push(4LL); q.push(7LL); tot =0; while(!q.empty()){ n=q.front();q.pop(); t=n; int x,y; x=y=0; while(t){ if(t%10==4)x++; else y++; t/=10; } if(x==y) dp[tot++]=n; if(n<INF){ m=n*10+4; q.push(m); m=n*10+7; q.push(m); } }}int main(){ bfs(); sort(dp,dp+tot); //cout<<tot<<'\12'; int t; ll a; scanf("%d",&t); while(t--){ scanf("%I64d",&a); if(a>dp[tot-1])printf("44444444447777777777\n"); else printf("%I64d\n",dp[lower_bound(dp,dp+tot,a)-dp]); } return 0;}
0 0
- HDU 5676
- hdu 5676
- HDU 5676(枚举 + 二分)
- HDU 5676 贪心
- hdu 5676(dfs)
- HDU 5676 幸运数字
- hdu 5676 幸运数
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- 使用maven构建android项目
- OJ里C++和G++的区别
- 艺术编程入门(1)------Processing简介
- iOS-View视图的生命历程
- ztr loves lucky numbers(二分,枚举)
- hdu 5676
- 拓扑排序
- HDU 3085 双向BFS
- 修改Chrome默认的搜索引擎
- 基于图灵机器人接口的简单NLP学习
- JDBC自定义 数据库连接池
- eclipse快捷键
- 日积月累:Proguard进行Android代码混淆
- 一些安卓的基本权限 清单配置文件