Codeforces Global Round 18 B. And It's Non-Zero(按位前缀和)
2024-09-08 17:03:22
题目大意:求一段数(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位二进制表示
最新文章
- jquery实现表格的搜索功能
- 页面动态加入<;script>;标签并执行代码
- mac svn
- 设计模式 命令-Command
- javascript常见编程模式举例
- 学习和理解C#的委托
- android 大小写转换
- hdu 2074 堆放篮 好开心图纸标题
- [转]OpenSolaris 2009.06, dev setup
- Shell脚本实现文件遍历和删除操作
- 【转】STM32: 一种计算CPU使用率的方法及其实现原理
- 微信小程序中遮罩层的滚动穿透问题
- jmeter安装与环境变量配置
- 【mysql】Mgr实现数据库高可用架构
- CuratorBarrier
- servlet的请求转发与重定向
- [转]Spring事务<;tx:annotation-driven/>;
- Java虚拟机学习 - 内存调优 ( 9 )
- [DeeplearningAI笔记]卷积神经网络1.6-1.7构造多通道卷积神经网络
- ubuntu 13.04编译安装xen4.4总结
热门文章
- CF1450G. Communism(状压DP)
- CF1442D Sum (动态规划,线段树分治)
- PHP一句话简单免杀
- 浅析websocket的基本应用spring boot + vue +C# + WPF
- Halcon C#开发OpenFramegrabber卡死问题
- SpringCache的基本使用
- CF Workers反向代理并修改请求
- 延宕执行,妙用无穷,Go lang1.18入门精炼教程,由白丁入鸿儒,Golang中defer关键字延迟调用机制使用EP17
- Hive的基本知识与操作
- Fielddata is disabled on text fields by default Set fielddata=true on [service.address]