博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
loj 1032(数位dp)
阅读量:5916 次
发布时间:2019-06-19

本文共 1041 字,大约阅读时间需要 3 分钟。

题目链接:

思路:好久没接触数位dp了=.=!,搞了这么久!一类记忆化搜索。

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 #define FILL(a,b) memset(a,b,sizeof(a)) 7 typedef long long ll; 8 9 ll dp[33][2][33];10 int n,digit[33];11 12 13 ll dfs(int pos,int pre,int sum,int doing)14 {15 if(pos==-1)return sum;16 if(!doing&&dp[pos][pre][sum]!=-1)return dp[pos][pre][sum];17 ll ans=0;18 int end=doing?digit[pos]:1;19 for(int i=0;i<=end;i++){20 ans+=dfs(pos-1,i,sum+(pre==i&&i==1),doing&&i==end);21 }22 if(!doing)dp[pos][pre][sum]=ans;23 return ans;24 }25 26 ll Solve(int n)27 {28 int pos=0;29 while(n){30 digit[pos++]=(n&1);31 n>>=1;32 }33 return dfs(pos-1,0,0,1);34 }35 36 int main()37 {38 FILL(dp,-1);39 int _case,t=1;40 scanf("%d",&_case);41 while(_case--){42 scanf("%d",&n);43 printf("Case %d: %lld\n",t++,Solve(n));44 }45 return 0;46 }
View Code

 

转载地址:http://hdgpx.baihongyu.com/

你可能感兴趣的文章
An AnnotationConfiguration instance is required to use
查看>>
Java凝视Override、Deprecated、SuppressWarnings具体解释
查看>>
移动web开发(四)——X-UA-Compatible
查看>>
小希的迷宫(并差集)
查看>>
设计模式——代理模式
查看>>
define 与 inline
查看>>
Theano2.1.11-基础知识之稀疏
查看>>
轻量级
查看>>
struts2每次访问都会创建一个新的session
查看>>
Zero-Copy&sendfile浅析
查看>>
Scala学习(九)练习
查看>>
webp图片优化
查看>>
13、Cocos2dx 3.0三,找一个小游戏开发3.0中间Director :郝梦主,一统江湖
查看>>
The Truth About .NET Objects And Sharing Them Between AppDomains
查看>>
根据切割下来的字符串断裂成不同的部分
查看>>
debian 该分区的部分安装移动硬盘后无法识别。
查看>>
POJ - 2991 Crane (段树+计算几何)
查看>>
两个堆栈实现一个队列和一叠两个队列实现【算法导论课后题】
查看>>
Private strand flush not complete
查看>>
下雨有感
查看>>