hdu_4734_F(x)(数位DP水)

原创 2016年05月30日 22:32:42

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4734

题意:给你一个F(x)的定义,然后给你a,b,问你在0到b包括b有多少个数满足F(x)<=F(a)

题解:dp[i][j]为dp到第i位的和为j的方案

#include<cstdio>
#include<cstring>
#define F(i,a,b) for(int i=a;i<=b;i++)

int t,a,b,fa,dp[11][200001],ct,dig[11],len;

int dfs(int pos,int sum,bool inf){
	if(!pos)return 1;
	if(!inf&&dp[pos][sum]!=-1)return dp[pos][sum];
	int end=inf?dig[pos]:9,ans=0,tp;
	F(i,0,end){
		tp=sum-i*(1<<(pos-1));
		if(tp>0)ans+=dfs(pos-1,tp,inf&&(i==end));
	}
	if(!inf)dp[pos][sum]=ans;
	return ans;
}

int main(){
	scanf("%d",&t);
	memset(dp,-1,sizeof(dp));
	F(ic,1,t){
		printf("Case #%d: ",ic);
		scanf("%d%d",&a,&b);
		for(fa=ct=0;a;a/=10,ct++)fa+=a%10*(1<<ct);
		for(len=0;b;b/=10)dig[++len]=b%10;
		printf("%d\n",dfs(len,fa+1,1));
	}
	return 0;
}


版权声明:CSDN感觉没博客园好用,而且还有广告,界面也不是很好看,所以换到博客园去了 新博客地址:www.cnblogs.com/bin-gege/

【数位DP】BZOJ3780数字统计

Time Limit: 10 Sec Memory Limit: 128 MB Description 小A正在研究一些数字统计问题。有一天他突然看到了一个这样的问题: 将[L..R][L.....
  • cqbztsy
  • cqbztsy
  • 2016年02月26日 12:20
  • 682

数位dp入门详解

基础篇 数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位...
  • CillyB
  • CillyB
  • 2017年02月19日 23:07
  • 1778

【数位dp】(涉及到处理前导0问题)

数位dp记忆化搜索中,深搜计算dp值必先经过0-0-0 这条递归途径, 如果前导0对答案不影响那么无所谓,但是影响答案那么需要记录处理。 问题来源比较奇特,我理解错了SPOJ - BALNUM的题意...
  • qq_33199236
  • qq_33199236
  • 2017年05月24日 19:52
  • 306

数位dp总结 之 从入门到模板

for(int i=le;i
  • wust_zzwh
  • wust_zzwh
  • 2016年08月03日 14:37
  • 16385

数位DP学习小结

一、学习心得体会 问题描述: 一般体现为,定义某种性质K,问某区间内具有K性质的数的个数 往往给的区间会很大,对区间内的每个数进行判断显然会超时 于是数位DP登场 数位DP,顾名思义,是对数字的每一位...
  • tomorrowtodie
  • tomorrowtodie
  • 2016年08月06日 21:03
  • 1377

HDU2089 不要62(数位DP入门经典题目)

昨天做了一道很奇怪的数字题,不知道怎么做,今天才知道是数位DP ……我来学习学习。 传送门 大意:给定区间[n,m][n,m],求在n到m中没有“62“或“4“的数的个数。如62315包含62,8...
  • geng4512
  • geng4512
  • 2015年08月24日 20:48
  • 1186

[jzoj]3735. 【Usaco2014Open银组】里程计(odometer) (经典数位DP+详细分析)

https://jzoj.net/senior/#main/show/3735Problem:求[x..y][x..y]中的有趣数.有趣数的定义如下:若一个数字至少有一半以上的数位上拥有相同的数字,则...
  • Algor_pro_king_John
  • Algor_pro_king_John
  • 2017年07月30日 21:25
  • 263

【数位DP——题集及提示】

4207 -- 【模拟试题】不要62    最简单数位DP 不解释 4600 -- 【模拟试题】迷信的黄学长   挺坑!注意有正反向两种连续,传递序列里是否有2,4这两个参数,另外还要传...
  • qq_30303087
  • qq_30303087
  • 2016年04月28日 22:26
  • 461

【BZOJ1833】【ZJOI2010】数字计数 数位DP

然而并没有DP。 题解: [1,R]的答案减去[1,L]的答案。 对于一个数 X ,求 [1,X] 的答案,我是先处理出 [1,999……9] 的答案(那个999……9 然后按位往下扫,计算最...
  • Vmurder
  • Vmurder
  • 2015年06月10日 17:54
  • 874

poj3252 数位dp(所有比n小的二进制位0的个数不少于1的个数)记忆化搜索

http://poj.org/problem?id=3252 Description The cows, as you know, have no fingers or thumbs an...
  • u013573047
  • u013573047
  • 2015年02月21日 08:46
  • 883
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hdu_4734_F(x)(数位DP水)
举报原因:
原因补充:

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