长长久久【C语言】


解题思路

复制代码
#include<stdio.h>
#define MAX_N 100005
int a[MAX_N];
int cnt[32];
int main(){
    int n,k;
    scanf("%d %d",&n,&k);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    for(int i=0;i<32;i++){
        cnt[i]=0;
    }
    for(int i=0;i<k;i++){
        int num=a[i];
        for(int j=0;j<32;j++){
            if(num&(1<<j)){
                cnt[j]++;
            }
        }
    }
    int max_or=0;
    for(int j=0;j<32;j++){
        if(cnt[j]>0){
            max_or|=(1<<j);
        }
    }
    for(int i=k;i<n;i++){
        int remove=a[i-k];
        for(int j=0;j<32;j++){
            if(remove&(1<<j)){
                cnt[j]--;
            }
        }
        int add=a[i];
        for(int j=0;j<32;j++){
            if(add&(1<<j)){
                cnt[j]++;
            }
        }
        int current_or=0;
        for(int j=0;j<32;j++){
            if(cnt[j]>0){
                current_or|=(1<<j);
            }
        }
        if(current_or>max_or){
            max_or=current_or;
        }
    }
    printf("%d\n",max_or);
    return 0;
}
相关推荐
Lxx_Zw5 小时前
串口命令如何从字符串长成协议:帧头、长度、校验和与状态机
c语言·stm32·单片机·嵌入式硬件
wuminyu6 小时前
JVM执行引擎学习总结:热点字节码编译成本地机器码
java·linux·c语言·jvm·c++
佳得动7 小时前
编译和链接的认识(C语言)
c语言·开发语言
Navigator_Z7 小时前
LeetCode //C - 1313. Decompress Run-Length Encoded List
c语言·算法·leetcode
wuminyu16 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
水饺编程21 小时前
第2章:Linux 基础,解压缩【.tar.bz2】压缩包文件
linux·c语言·汇编
Zwawa1 天前
串口命令如何从字符串长成协议:帧头、长度、校验和与状态机
c语言·单片机·嵌入式
·present·2 天前
CSAPP(Bomb lab)
c语言·c++
wuminyu2 天前
Java字节码学习总结:字节码如何加载、解析和执行
java·linux·c语言·jvm·c++
图灵-M2 天前
【数据结构】静态 & 动态顺序表
c语言·数据结构·笔记