博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Round Numbers
阅读量:5291 次
发布时间:2019-06-14

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

 

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 7 int n,m; 8 int num[40],dp[40][80]; //表示第i个位置,0的个数减去1的个数的差值 9 10 int DFS(int pos,int res,bool ok,bool F){11 if(pos==-1) return res>=32;12 if(!F&&!ok&&dp[pos][res]!=-1) return dp[pos][res];13 14 int maxv=F?num[pos]:1;15 int ans=0;16 for(int i=0;i<=maxv;i++){17 if(ok&&i==0) ans=ans+DFS(pos-1,res,ok,F&&i==maxv);18 else ans=ans+DFS(pos-1,res+(i==0?1:-1),ok&&i==0,F&&i==maxv);19 }20 21 if(!F&&!ok) dp[pos][res]=ans;22 return ans;23 } 24 25 int Solve(int temp){26 if(!temp) return 1;27 int cnt=0;28 while(temp){29 num[cnt++]=temp%2;30 temp/=2;31 }32 memset(dp,-1,sizeof(dp));33 return DFS(cnt-1,32,true,true); //为了避免产生负数,所以哈希一下,都加上3234 }35 36 int main()37 { 38 while(~scanf("%d%d",&n,&m)) cout<
<

 

转载于:https://www.cnblogs.com/zgglj-com/p/7565646.html

你可能感兴趣的文章
字符串元转分
查看>>
thinkphp 防sql注入
查看>>
201521123044 《Java程序设计》第1周学习总结
查看>>
MIT Scheme 的基本使用
查看>>
程序员的“机械同感”
查看>>
在16aspx.com上下了一个简单商品房销售系统源码,怎么修改它的默认登录名和密码...
查看>>
c++回调函数
查看>>
linux下Rtree的安装
查看>>
【Java】 剑指offer(53-2) 0到n-1中缺失的数字
查看>>
Delphi中ListView类的用法
查看>>
bzoj3110: [Zjoi2013]K大数查询 【树套树,标记永久化】
查看>>
[原创]Java 的传值小例子
查看>>
【MySQL学习】安装和配置 服务无法启动 没有报告任何错误
查看>>
C# 修饰符
查看>>
JavaScript启示录
查看>>
我需要什么样的浏览器?
查看>>
取textaera里的值
查看>>
java设计模式1--工厂方法模式(Factory Method)
查看>>
博客第一弹—聊聊HTML的那些事
查看>>
上海2017QCon个人分享总结
查看>>