长长久久【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;
}
相关推荐
2601_951644326 小时前
C语言二级备考指南
c语言·编程基础·编译环境·二级考试·题库选择
日拱一卒——功不唐捐10 小时前
红黑树删除(C语言)
c语言·数据结构
ziguo112214 小时前
C/C++ 错误处理全解:从 errno 到 C++ 异常
linux·c语言·c++·windows·visual studio
小+不通文墨18 小时前
--no-multibyte-chars 解决OLED_data.c移植后中文乱码问题
c语言·经验分享·笔记·学习
dtq042418 小时前
C语言-文件操作1
c语言·开发语言·学习
Suxing918 小时前
C语言基础分享:“群租房”和“点名册”——联合体与枚举
c语言·算法·c#
q275513004218 小时前
AS717 Type-C转DP 8K方案外维少 AS717电路图
c语言·开发语言
自然常数e20 小时前
顺序表专题
c语言·数据结构·visual studio
j7~20 小时前
【数据结构初阶】队列的实现(链式队列 + 循环队列)--详解
c语言·开发语言·数据结构·学习·队列·queue·c\c++
草莓熊Lotso20 小时前
【Linux网络】深入理解Linux IO多路复用:select服务器完善、内核原理与poll实战
linux·运维·服务器·c语言·网络·c++