长长久久【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;
}
相关推荐
dnbug Blog3 分钟前
C 程序基本结构
c语言·程序结构
QiLinkOS11 分钟前
极客精神与商业思维的融合实践(2)
c语言·c++·人工智能·算法·开源协议
不会C语言的男孩24 分钟前
Linux 系统编程 · 第 2 章:系统调用与库函数
linux·c语言
Luminous.2 小时前
C语言--day29
c语言·开发语言
十月的皮皮2 小时前
C语言学习笔记20260612-菱形图案打印(两种写法)
c语言·笔记·学习
AI科技星2 小时前
第三卷:质数王朝志(全卷定稿)
c语言·开发语言·汇编·electron·概率论
2601_951645744 小时前
C语言基础语法,分支语句
c语言·运算符·if语句·switch语句·分支语句
dtq04244 小时前
C语言刷题函数1-判断素数(分支语句,函数两种方法)
c语言·开发语言·学习
AI科技星4 小时前
第四卷:橡皮泥江湖(拓扑学)
c语言·开发语言·网络·量子计算·agi·拓扑学
2601_951643884 小时前
关于C语言中getchar()的详细使用
c语言·输入输出·getchar()·eof·文件结束符