按位与【C语言】

解题思路如下

复制代码
#include<stdio.h>
int main(){
	int T;
	scanf("%d",&T);
	while(T--){
		int n,k;
		scanf("%d %d",&n,&k);
		int a[10010];
		for(int i=0;i<n;i++){
			scanf("%d",&a[i]);
		}
		int maxlen=0;
		for(int bit=0;bit<=30;bit++){
			int left=0,zero=0,current=0,count=0;
			for(int right=0;right<n;right++){
				if(a[right]&(1<<bit)){
					count++;
				}else{
					zero++;
				}
				while(zero>k){
					if(a[left]&(1<<bit)){
						count--;
					}else{
						zero--;
					}
					left++;
				}
				if(count>0 && right-left+1>current){
					current=right-left+1;
				}
			}
			if(current>maxlen){
				maxlen=current;
			}
		}
		printf("%d\n",maxlen);
	}
}
相关推荐
小成202303202652 小时前
数据结构(整理常见结构总结到树层级)
java·c语言·数据结构·c++·链表
shylyly_2 小时前
sizeof 和 strlen的理解与区分
c语言·算法·strlen·sizeof
Chockong3 小时前
11_vim自动插入文件头模板(.c/.cpp/.py/.txt)设置
c语言·vim
学会去珍惜11 小时前
是什么意思c语言
c语言·编程语言·底层开发·面向过程·系统软件
handler0113 小时前
拒绝权限报错!三分钟掌握 Linux 权限管理
linux·c语言·c++·笔记·学习
代码中介商14 小时前
C语言数据存储深度解析:从原码反码补码到浮点数存储
c语言·开发语言·内存
hipolymers15 小时前
C语言怎么样?难学吗?
c语言·数据结构·学习·算法·编程
努力努力再努力wz18 小时前
【Linux网络系列】深入理解 I/O 多路复用:从 select 痛点到 poll 高并发服务器落地,基于 Poll、智能指针与非阻塞 I/O与线程池手写一个高性能 HTTP 服务器!(附源码)
java·linux·运维·服务器·c语言·c++·python
minji...18 小时前
Linux 线程同步与互斥(四) POSIX信号量,基于环形队列的生产者消费者模型
linux·运维·服务器·c语言·开发语言·c++