hdu4734 F(x) 数位dp
来源:互联网 发布:激战2一折商城网络延迟 编辑:程序博客网 时间:2024/05/23 20:32
没写过几个数位dp的题,拿来练练手..dp[i][j]表示在没有高位限制的情况下,枚举到第i位时,余下的权重为j时有多少符合的情况(因为只记录了没有高位限制的情况,所以多组数据间dp数组可以共用)dfs(pos,res,f)分别表示枚举到第pos位,权重还剩下res,高位是否限制的标记f,直接计算一下B的值就好了。
/*=============================================================================# Author:Erich# FileName:=============================================================================*/#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#include <cstring>#include <string>#include <vector>#include <map>#include <queue>#include <stack>#define lson id<<1,l,m#define rson id<<1|1,m+1,rusing namespace std;typedef long long ll;const int inf=0x3f3f3f3f;const ll INF=1ll<<60;const double PI=acos(-1.0);int n,m;int A;int B;int dp[11][20000];int num[11];int f(int x){int len=0;int res=0;for (len=0; x; len++){res+=(x%10)*(1<<len);x/=10;}return res;}int dfs(int pos,int res,bool f){if (pos==-1) return res>=0;if (res<0) return 0;if (!f && dp[pos][res]!=-1) return dp[pos][res];int u;if (f) u=num[pos];else u=9;int ans=0;for (int i=0; i<=u; i++){ans+=dfs(pos-1,res-i*(1<<pos),f&&(i==u));}if (!f) dp[pos][res]=ans;return ans;}int calc(int x){int len=0;for (len=0; x; len++)num[len]=x%10,x/=10;int up=f(A);return dfs(len-1,up,true);}int main(){//freopen("in.txt","r",stdin);int tt;scanf("%d",&tt);int cnt=0;memset(dp,-1,sizeof dp);while(tt--){scanf("%d%d",&A,&B);int ans=calc(B);printf("Case #%d: %d\n",++cnt,ans);}return 0;}
0 0
- hdu4734,F(x), 数位dp
- hdu4734 F(x) 数位dp
- HDU4734 F(x) 数位DP
- hdu4734---F(x)(数位dp)
- hdu4734 F(x) 数位dp
- HDU4734 F(x) 数位DP
- [数位DP] HDU4734 F(x)
- hdu4734 F(x) (数位dp)
- 【HDU4734】F(x) 数位DP
- HDU4734 F(x)[数位DP]
- HDU4734 F(x) 数位dp
- hdu4734 F(x) 数位dp
- F(x) (数位DP hdu4734)
- hdu4734 F(x)(数位dp)
- HDU4734 F(x) (数位DP)
- hdu4734 F(x)(数位dp)
- hdu4734——F(x) (数位DP)
- HDU4734 F(x)(数位DP)
- 【C/C++】Linux下使用system()函数一定要谨慎
- SiteMesh教程实例
- EditorLineEnds.ttr
- Android解决使用findViewById时需要对返回值进行类型转换问题的辅助类
- cocosbuilder中scrollview的使用
- hdu4734 F(x) 数位dp
- 文件处理工具(上传和下载)
- Java RMI学习入门小案例
- js日期时间格式化函数
- linux下 定时 以时间命名 备份数据库
- Activity在设置横屏时候会调两次onCreate
- Flex入门
- 设计模式1——Singleton设计模式
- iOS常用类目