问题

求 \(\sum\limits_{i=1}^{3\times 10^8} popcount(i)\) 。

仅考虑在暴力做法下的效率。

枚举位

__builtin_popcount

#include<bits/stdc++.h>
using namespace std;
int n;
long long ans;
int main(){
n=3e8;
for(int i=1;i<=n;i++){
ans+=__builtin_popcount(i);
}
cout<<ans<<'\n';
}

-O2

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std;
int n;
long long ans;
int main(){
n=3e8;
for(int i=1;i<=n;i++){
ans+=__builtin_popcount(i);
}
cout<<ans<<'\n';
}

-O2,-popcnt

#pragma GCC optimize(2)
#pragma GCC target("popcnt")
#include<bits/stdc++.h>
using namespace std;
int n;
long long ans;
int main(){
n=3e8;
for(int i=1;i<=n;i++){
ans+=__builtin_popcount(i);
}
cout<<ans<<'\n';
}

效率

方式 时间 1 时间 2 时间 3 平均值
枚举位
优化
__builtin_popcount 0.808s 0.876s 0.815s 0.833s
-O2 0.796s 0.702s 0.718s 0.739s
-O2, -popcnt 0.173s 0.175s 0.172s 0.173s

最新文章

  1. HTML5滑动(swipe)事件
  2. .net程序员转行做手游开发经历(二)
  3. MyEclipse for linux 破解方法
  4. 关于精简安装office2010的步骤
  5. Python学习笔记(四)字符串型
  6. 你知道的display的值有多少?用了多少?
  7. Oracle数据库——常用命令(用户管理、数据库导入导出)
  8. 【Populating Next Right Pointers in Each Node II】cpp
  9. Android 近百个项目的源代码
  10. Case Study: Random Number Generation(翻译教材)
  11. G - Balanced Lineup - poj3264(区间查询)
  12. 网易云课堂_C语言程序设计进阶_期末考试编程题部分
  13. 学号:201521123116 《java程序设计》第三周学习总结
  14. Struts2配置问题终极解决方案
  15. js获取当前日期方法(YYYY-MM-DD格式)
  16. 码云,git使用 教程-便签
  17. 【分片无法挂载】Elasticsearch分片和副本无法挂载(分片移位)
  18. React Native 组件之TouchableHightLight
  19. 【10.14】Bug Bounty Write-up总结
  20. eclipse在Windows7 64 位下出现Unhandled event loop exception No more handles

热门文章

  1. sticker-footer 布局
  2. Spark入门之环境搭建
  3. 【Android开发】Android6.0请求权限方式
  4. JavaScript实现简单轮播图动画
  5. EMS设置发送连接器和接收连接器邮件大小
  6. java使用poi生成excel
  7. python基础练习题(题目 使用lambda来创建匿名函数。)
  8. python基础练习题(题目 打印出所有的&quot;水仙花数&quot;,所谓&quot;水仙花数&quot;是指一个三位数,其各位数字立方和等于该数本身)
  9. HTML5的基本功能
  10. Apache Doris 通过ODBC连接SQL Server