Lucky Numbers (easy)

原创 2016年08月28日 15:10:05

链接:http://codeforces.com/problemset/problem/96/B

Petya 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 Petya came across a positive integer n. Help him to find the least super lucky number which is not less than n.


题意:只有4和7的数字为幸运数字,4和7的个数相同时为超级幸运数字,求给出一个n,从0到n有几个超级幸运数字。

分析:现在看来其实可以用数位dp,不过我还没有很好的掌握,当时用的是简单的dfs打表,毕竟数据不是很大


题解:

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <cstring>
#include <functional>
#include <cmath>
using namespace std;

int k=0;
__int64 table[110];
void dfs(int num,int n4,int n7,int nowp,int allp)
{
	if(n4==n7)
	{
		table[k]=num;
		k++;
	}
	if(nowp==allp)
		return;
	num*=10;
	num+=4;
	dfs(num,n4+1,n7,nowp+1,allp);

	num/=10;
	num*=10;
	num+=7;
	dfs(num,n4,n7+1,nowp+1,allp);
}
int main()
{
	//freopen("in.txt","r",stdin);
	int n;
	dfs(4,1,0,1,8);
	dfs(7,0,1,1,8);
	table[k]=4444477777;
	sort(table,table+110);
	while(~scanf("%d",&n))
	{
		int i;
		for(i=0;i<110;i++)
			if(table[i]>=n)
				break;
		printf("%I64d\n",table[i]);
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

codeforces 96B Lucky Numbers (全排列)

Description Petya loves lucky numbers. Everybody knows that positive integers are lucky if their d...
  • wchhlbt
  • wchhlbt
  • 2016年07月26日 16:53
  • 348

【CodeForces】96B - Lucky Numbers (easy)(模拟,字典序全排列)

B. Lucky Numbers (easy) time limit per test 2 seconds memory limit per test 256 megabytes inpu...
  • wyg1997
  • wyg1997
  • 2016年05月23日 21:20
  • 731

CodeForces - 96B Lucky Numbers (easy)

Lucky Numbers (easy) Time Limit: 2000MS   Memory Limit: 262144KB   64bit IO Format: %I6...
  • qq_18738333
  • qq_18738333
  • 2015年03月29日 02:08
  • 778

CodeForces 630C Lucky Numbers(递归)

C. Lucky Numbers time limit per test 0.5 seconds memory limit per test 64 megabytes ...
  • shyazhut
  • shyazhut
  • 2016年08月05日 19:24
  • 169

CodeForces 630 C. Lucky Numbers(水~)

Description 定义只由7和8组成的数字为幸运数字,现给出一整数n,问位数不超过n位的数字中有多少个幸运数字 Input 一整数n(1...
  • V5ZSQ
  • V5ZSQ
  • 2016年02月21日 09:44
  • 321

codeforces 96B Lucky Numbers (easy)

B. Lucky Numbers (easy) time limit per test 2 seconds memory limit per test 256 megabyte...
  • Timeclimber
  • Timeclimber
  • 2017年10月26日 13:16
  • 94

B. Lucky Numbers (easy)思维

B. Lucky Numbers (easy) time limit per test2 seconds memory limit per test256 megabytes inputstan...
  • zhao5502169
  • zhao5502169
  • 2017年11月10日 11:46
  • 98

Lucky Number 2

B. Lucky Number 2 time limit per test 2 seconds memory limit per test 256 megabytes input stan...
  • xinghongduo
  • xinghongduo
  • 2012年01月24日 15:20
  • 1699

B.Lucky

B. Lucky 时间限制(普通/Java) : 20000 MS/ 30000 MS          运行内存限制 : 16384 KByte 总提交 : 255            测...
  • wyh7280
  • wyh7280
  • 2015年04月15日 13:30
  • 332

A. Roma and Lucky Numbers

time limit per test 1 second memory limit per test 256 megabytes input standard input ...
  • jj12345jj198999
  • jj12345jj198999
  • 2013年03月27日 22:45
  • 1177
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Lucky Numbers (easy)
举报原因:
原因补充:

(最多只允许输入30个字)