#include<bits/stdc++.h>
#include<vector>
using namespace std; //时间复杂度:O(N)
int f(int x)
{
int dp[x+1];
memset(dp,0,sizeof(dp));
int sum=0;
for(int i=1;i<=x;i++)
{
dp[i]=dp[i&(i-1)]+1;
sum+=dp[i];
}
return sum;
}
/**
思路:
i&(i-1)每次能去掉一个1,所以只要求出去掉1的数对应的二进制中1的个数
再加上1就知道了i的二进制中1的个数 状态转移方程:
dp[i]=dp[i&(i-1)]+1 dp[i]:
数字i的二进制中1的个数
*/
int main()
{
cout<<f(5)<<endl;
return 0;
}

最新文章

  1. 2016年最新mac下vscode配置golang开发环境支持debug
  2. Linux Shell 脚本调试
  3. python IOError: [Errno 0] Error
  4. SQL Server Database 维护计划创建完整的备份策略
  5. Python 字符串分割的方法
  6. Windows下使用GCC编译器
  7. Android 自定义RadioButton实现
  8. HTML5与CSS3权威指南.pdf5
  9. oracle job 定时执行 存储过程
  10. referencedColumnName
  11. php扩展memcache的安装
  12. C# 代码规范和质量检查工具 StyleCop.Analyzers
  13. qcharts编译
  14. mysql数据库查询和聚合函数
  15. Redis深入学习笔记(六)Redis内存分配
  16. 移动端热更新方案(iOS+Android)
  17. 《Java程序设计》win10系统学前准备
  18. python 将文件大小转换为human readable 的大小表示
  19. 雷林鹏分享:XML 简介
  20. Continuation-passing style

热门文章

  1. 电脑按键混乱,好像被锁定了Alt键
  2. ABP 02 解决 界面为英文
  3. linux命令之------which命令/cp命令/Head及tail命令/grep命令/pwd命令/cd命令/df命令/mkdir命令/mount及umount命令/ls命令/history命令/ifconfig命令/ping命令/useradd命令/命令passwd/kill命令/su命令/clear命令/ssh命令/tar解压缩/远程拷贝scp
  4. mysql课外积累
  5. Vue的Key属性,v-for和v-if,v-if/v-show,v-pre不渲染,v-once只渲染一次
  6. SQL Server数据库应用技术
  7. Kubeasz部署K8s基础测试环境简介
  8. 小程序支持原生async方法
  9. 如何将 普通代码变成 java lamband表达式
  10. Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解