题目大意:求一段数(l到r)的按位与结果不为零需要删除中间元素的最小个数

思路:按位与使得结果不为0只要有某一位全是1即可,所以只要统计每一位1的个数,用总个数减去1的个数就是某一位0的个数

删除包含0最少的那一位就是最少需要删除的个数

 1 # include<iostream>
2 # include<bits/stdc++.h>
3 using namespace std;
4 # define int long long
5 # define endl "\n"
6 const int N = 2e5 + 10;
7 int a[20][N];
8 void solve()
9 {
10 int l,r;
11 cin>>l>>r;
12 int ans = 200005;
13 for(int j = 0;j < 20;++j){
14 ans= min(ans,r-l+1-(a[j][r]-a[j][l-1]));
15 }
16 cout<<ans<<endl;
17 }
18 int tt;
19 signed main() {
20 ios::sync_with_stdio(false);
21 cin.tie(0);
22 cout.tie(0);
23
24 for(int i = 1;i <= 200000;++i){
25 bitset<20> b(i);
26 for(int j = 0;j< 20;++j) a[j][i] = b[j];
27 }
28 for(int j = 0;j < 20;++j)
29 for(int i = 1;i <= 200000;++i){
30 a[j][i] += a[j][i-1];
31 }
32
33
34 cin >> tt;
35 while (tt--)solve();
36
37
38 return 0;
39 }

用bitset预处理出每一位1的个数,前缀和统计

bitset<20>(i) 数字i的20位二进制表示

最新文章

  1. jquery实现表格的搜索功能
  2. 页面动态加入&lt;script&gt;标签并执行代码
  3. mac svn
  4. 设计模式 命令-Command
  5. javascript常见编程模式举例
  6. 学习和理解C#的委托
  7. android 大小写转换
  8. hdu 2074 堆放篮 好开心图纸标题
  9. [转]OpenSolaris 2009.06, dev setup
  10. Shell脚本实现文件遍历和删除操作
  11. 【转】STM32: 一种计算CPU使用率的方法及其实现原理
  12. 微信小程序中遮罩层的滚动穿透问题
  13. jmeter安装与环境变量配置
  14. 【mysql】Mgr实现数据库高可用架构
  15. CuratorBarrier
  16. servlet的请求转发与重定向
  17. [转]Spring事务&lt;tx:annotation-driven/&gt;
  18. Java虚拟机学习 - 内存调优 ( 9 )
  19. [DeeplearningAI笔记]卷积神经网络1.6-1.7构造多通道卷积神经网络
  20. ubuntu 13.04编译安装xen4.4总结

热门文章

  1. CF1450G. Communism(状压DP)
  2. CF1442D Sum (动态规划,线段树分治)
  3. PHP一句话简单免杀
  4. 浅析websocket的基本应用spring boot + vue +C# + WPF
  5. Halcon C#开发OpenFramegrabber卡死问题
  6. SpringCache的基本使用
  7. CF Workers反向代理并修改请求
  8. 延宕执行,妙用无穷,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中defer关键字延迟调用机制使用EP17
  9. Hive的基本知识与操作
  10. Fielddata is disabled on text fields by default Set fielddata=true on [service.address]