按位与【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);
	}
}
相关推荐
布莱克60544 分钟前
栈(Stack)详解:定义、作用、应用场景及与队列的区别(附 C/C++ 代码)
c语言·开发语言·c++·
wuyk5551 小时前
从零吃透 Modbus 通信|第 6 章:线圈功能码 05/0F 实现 & Modbus‑TCP 基础入门
c语言·网络·网络协议·tcp/ip
zbyyd2 小时前
Linux 进程间通信(IPC):信号、消息队列、共享内存与信号量详解
linux·运维·c语言
是隼人14 小时前
buuctf-pwn xdctf2015_pwn200题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
布莱克60518 小时前
数组详解:定义、作用、应用场景及与链表的区别(C/C++ 代码讲解)
c语言·开发语言·c++·数组
hongmai66688818 小时前
MP2348GTL-Z:这颗24V/4A同步降压芯片,把性能和体积平衡得恰到好处
c语言·开发语言·arm开发·单片机·5g
多弗朗皮卡丘18 小时前
C语言梦开始的地方19:文件操作
c语言·开发语言
万法若空19 小时前
C/C++ 类型别名定义方式对比
java·c语言·c++
一直C21 小时前
Linux系统编程|进程间通信IPC全套详解(1)(管道、信号)
linux·c语言·开发语言·网络·青少年编程·visual studio code
春风解人意21 小时前
从零开始学习嵌入式P28----线程
c语言·学习·算法