sdnu 1248.B.陆历川玩数位

1248.B.陆历川玩数位

Time Limit: 500 MS    Memory Limit: 131072 KB
Total Submission(s): 11    Accepted Submission(s): 7

Description

A number X have n digits(A1A2A3......An)

F(x) = A1*2n-1 + A2*2n-1 .....+An-1*21 + An *20

Now, give you two number A, B

You need to calculate how many number's F(x) is no more than F(A) between 0 to B

Input

T(0 < T<= 10000) T is TestCase

A, B (0 <= A, B <= 1000000000)

Output

Answer

Sample Input

11 1

Sample Output

Case #1: 2
           这道题是一道模板题~~看清题意做就好。
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int dp[20][10002];//最大的时候也不是太大~开个10000+的数组就好了
int maxn[20];
int num;
int f(int x)//求他的f(x)是多少
{
	if (x == 0)
	{
		return 0;
	}
	int ans = f(x / 10);
	return ans * 2 + (x % 10);
}
int poww(int x)求这个2的x幂是多少
{
	int ans = 1;
	while (x--)
	{
		ans = ans * 2;
	}
	return ans;
}
int dfs(int pos, int sum, bool limit)进行dfs遍历
{
	if (pos == -1)如果f(x)>num;就不加入结果
	{
		return sum<=num;
	}
	if (sum > num)同上
	{
		return 0;
	}
	if (!limit&&dp[pos][num-sum] != -1)一定要注意边界的limit~所有的dp记忆化都要加上!limit
	{
		return dp[pos][num-sum];
	}
	int ans = 0;
	int up = limit ? maxn[pos] : 9;//查询上界
	for (int s = 0; s <= up; s++)
	{
		ans += dfs(pos - 1, (sum + poww(pos)*s), limit && (maxn[pos] == s));
	}
	if (!limit)
	{
		dp[pos][num-sum] = ans;记忆化
	}
	return ans;
}
int solve(int x)把边界储存下来;
{
	int pos = 0;
	while (x)
	{
		maxn[pos++] = x % 10;
		x = x / 10;
	}
	return dfs(pos - 1, 0, 1);
}
int main()
{
	memset(dp, -1, sizeof(dp));
	int te;
	scanf("%d", &te);
	int k = 1;
	while (te--)
	{
		int a, b;
		scanf("%d %d", &a, &b);
		num = f(a);
		printf("Case #%d: %d\n",k++, solve(b));
	}
	return 0;
}



全部评论

相关推荐

我是秋招面的抖音电商部门,从八月开始给我打电话约面试,当时有加对应的hr微信,前几轮还好,从三面开始就是拖半个月一下在推进,面了三轮以后拖了一个月说再加一个交叉面,面完过了半个多月问hr,hr说她离职了不管我了,我连自己的流程在哪里都不清楚。在官网投诉了三次(前两次正常反馈问题,字节你像听不懂话一样),今天下午突然有其他部门约我面试,说在人才库里看见我简历了觉得很匹配,我拒了说不想面了。过了一会,声称原来那个部门的hr负责人给我回电话,表示抱歉,说因为北京hc不够了把我流程释放了,前面的hr是实习生离职了,没有和我对接非常抱歉,如果有想法可以帮我推荐给其他部门。那么我问你:1.&nbsp;从八月等到11月,三个月时间我前面不断确认还有没有hc,给我的回复都是有hc,没hc你面什么呢?2.&nbsp;作为一个大厂你流程这么一坨?让实习生对接校招流程,实习生离职了对应的候选人就不管了?不是我主动问我的流程就这样一直被卡?3.&nbsp;还说我面评没问题,帮我推荐其他部门,现在各个大厂都开奖了,你还让我从头开始面?我前面面了你们三个月啊,孩子饿死了开始装得想负责了。4.&nbsp;你们官网的流程反馈对应的人员是理解能力有问题吗,一个问题我投诉三次才能看明白是吗?套话一堆在哪里随便选了个常用语就给我回复了?不想开可以直接把入口关了
奋斗的小码农a:字节流程就是恶心死人,一次字节广告5面挂一次字节抖音电商6面挂,最后那个面试官装都不装了直接分屏聊天还外放语音家里真的私募了
秋招吐槽大会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务