按位与【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);
	}
}
相关推荐
91刘仁德7 小时前
C++ 继承和多态 设计模式
c语言·c++·笔记
码行山野赴时序归途7 小时前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表
库玛西7 小时前
哈夫曼树与前缀编码:数据压缩的贪心核心
c语言·c++·笔记·考研
雷✘8 小时前
C 语言预处理中的宏展开、条件编译与头文件保护
c语言
aramae8 小时前
模拟实现memset()(C语言)
c语言·开发语言·后端
phltxy9 小时前
C语言结构体
c语言
库玛西9 小时前
数据结构与算法之美:树、森林与二叉树全解析
c语言·数据结构·笔记·考研·算法·学习方法
2601_955518189 小时前
如何学好C语言:从入门到精通,掌握编程基石
c语言·指针·项目实战·调试技巧·编程基础
是隼人9 小时前
buuctf-pwn ciscn_2019_sw_1(32位只有一次格式化机会)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
点纭10 小时前
C 语言 第七章 常用函数(3)
c语言·开发语言·算法·oracle·c#