MT3048 区间按位或

news2024/11/16 3:14:11

思路:

使用ST表。ST表求区间最大值改为按位或即可。

ST模板可参考MT3024 max=min

代码:

1.暴力6/10

#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
const int M = 5e5 + 10;
int n, m;
int num[N];
int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        cin >> num[i];
    }
    int l, r;
    for (int i = 1; i <= m; i++)
    {
        cin >> l >> r;
        int ans = num[l];
        for (int j = l + 1; j <= r; j++)
        {
            ans = ans | num[j];
        }
        cout << ans << endl;
    }
}

 2.ST表:

#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
const int M = 5e5 + 10;
int n, m;
int mn[N][50], Lg[N], a[N];
void pre()
{
    Lg[1] = 0;
    for (int i = 2; i <= n; i++)
    {
        Lg[i] = Lg[i >> 1] + 1;
    }
}
void ST_create()
{ // 创建ST表
    for (int i = 1; i <= n; i++)
    {
        mn[i][0] = a[i];
    }
    for (int j = 1; j <= Lg[n]; j++)
    {
        for (int i = 1; i <= n - (1 << j) + 1; i++)
        {
            mn[i][j] = (mn[i][j - 1] | mn[i + (1 << (j - 1))][j - 1]); // 改成或运算
        }
    }
}
int ST_q(int l, int r)
{ // ST表求区间或
    int k = Lg[r - l + 1];
    return (mn[l][k] | mn[r - (1 << k) + 1][k]); // 改成或运算
}

int main()
{
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
    }
    pre();
    ST_create();
    int l, r;
    for (int i = 1; i <= m; i++)
    {
        cin >> l >> r;
        cout << ST_q(l, r) << endl;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1712965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端实习记录——git篇(公司拉取项目流程)

实习中第一步就是拉取项目&#xff0c;看项目代码&#xff0c;下面总结一下我在公司项目拉取项目流程。 1、联系leader开通gitlab账号 2、查看/配置git用户名和密码 &#xff08;1&#xff09;查看 git config user.name git config user.email git config user.password &…

8086 汇编笔记(二):寄存器(内存访问)

一、内存中字的存储 字单元的概念&#xff1a;字单元&#xff0c;即存放一个字型数据(16 位)的内存单元&#xff0c;由两个地址连续的内存单元组成 由上一章学习可知&#xff1a;高地址内存单元中存放字型数据的高位字节&#xff0c;低地址内存单元中存放字型数据的低位字节 …

【喜报】科大睿智多家服务企业上榜2024年第四批DCMM名单

近日&#xff0c;DCMM官方平台发布通知公告&#xff0c;根据《数据管理能力成熟度评估工作管理办法(暂行)》的有关规定&#xff0c;经单位自愿申请&#xff0c;评估机构评估、专家评审及公示&#xff0c;下列27单位获得数据管理能力成熟度等级证书。小编祝贺多家服务企业上榜20…

四川古力未来科技抖音小店畅享多重好处

在当今数字化浪潮席卷之下&#xff0c;四川古力未来科技抖音小店以其独特的魅力&#xff0c;正逐渐成为消费者们的新宠。作为融合了先进科技与便捷购物体验的创新平台&#xff0c;它不仅能够满足消费者的多样化需求&#xff0c;更在提升购物体验、优化服务流程等方面展现出了显…

【ubuntu20】--- 定时同步文件

在编程的艺术世界里&#xff0c;代码和灵感需要寻找到最佳的交融点&#xff0c;才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里&#xff0c;我们将共同追寻这种完美结合&#xff0c;为未来的世界留下属于我们的独特印记。 【Linux命令】--- 多核压缩命令大全&…

openresty(Nginx) 隐藏 软件包名称 版本号 升级新版本

1 访问错误或者异常的URL 2 修改配置&#xff0c;重新编译&#xff0c;升级 #修改版本等 vim ./bundle/nginx-1.13.6/src/core/nginx.h #define nginx_version 1013006 #define NGINX_VERSION "1.13.6" #define NGINX_VER "openresty/&q…

第二证券炒股知识:买可转债的条件?

买可转债需要开通可转债的权限&#xff0c;其间开通可转债权限需要满意2年买卖经历10万元资产量”的准入要求。 在买卖可转债时&#xff0c;需要留意以下买卖规则&#xff1a; 1、可转债买卖时刻为买卖日的9:30-11:30,13:00-15:00&#xff0c;其间9:15-9:25&#xff0c;9:15-9…

如何在OrangePi AIpro智能小车上实现安全强化学习算法

随着人工智能和智能移动机器人的广泛应用&#xff0c;智能机器人的安全性和高效性问题受到了广泛关注。在实际应用中&#xff0c;智能小车需要在复杂的环境中自主导航和决策&#xff0c;这对算法的安全性和可靠性提出了很高的要求。传统的强化学习算法在处理安全约束时存在一定…

[CVPR-24] HUGS: Human Gaussian Splats

本文提出一种新的数字人表征Human Gaussian Splats (HUGS)&#xff0c;可以实现新姿态和新视角生成&#xff1b;本文提出一种新的前向形变模块&#xff08;forward deformation module&#xff09;&#xff0c;在标定空间基于Gaussians表征数字人&#xff0c;并基于LBS学习如何…

【Pandas】深入解析`pd.read_sql()`函数

【Pandas】深入解析pd.read_sql()函数 &#x1f308; 欢迎莅临我的个人主页&#x1f448;这里是我深耕Python编程、机器学习和自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;并乐于分享知识与经验的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xf…

开放式耳机推荐品牌:五款品质超凡机型必须选购

在这个快节奏的生活中&#xff0c;我们每个人都渴望在忙碌之余找到一片属于自己的宁静。音乐&#xff0c;作为连接心灵的桥梁&#xff0c;无疑是最为直接和有效的途径。而一款优秀的开放式耳机&#xff0c;不仅能让我们沉浸在美妙的旋律中&#xff0c;还能在保持对外界环境感知…

Golang os.Rename invalid cross-device link的原因

文章目录 背景运行环境 文件系统对比linux下的文件系统mac下的文件系统linux下的mv指令 golang的os.Rename源码os.Renamesyscall.Renamesyscall.RenameatSYS_RENAMEAT是什么 查看系统调用函数文档什么是man pageman page的用法user commandssystem calls renameat不支持跨挂载点…

如何用俄语预定酒店,柯桥外贸俄语培训

-Привет, Алекс! Как твои дела? 你好&#xff0c;阿列克斯&#xff01;你最近好吗&#xff1f; -Отлично! Я скоро уезжаю на 10 дней в Санкт-Петербург, но никак не могу найти там…

ITIL4认证考试这么贵,还值得考证吗,有必要学吗?

从2023年4月1日开始&#xff0c;ITIL 4是Foundation认证将会捆绑OTM(Official Training Materials),这样在一次ITIL4的考试费中将会捆绑&#xff1a;试卷费电子教材书费监考费OTM费&#xff0c;每一种考试费都相较于2022年有涨幅&#xff0c;再加上PeopleCert收取的授权机构的授…

redis-cli help使用

1. redis-cli命令使用—先连接上服务器 连接到 Redis 服务器&#xff1a; 使用 redis-cli 命令即可连接到本地运行的 Redis 服务器&#xff0c;默认连接到本地的 6379 端口。 redis-cli如果 Redis 服务器不在本地或者端口不同&#xff0c;可以使用 -h 和 -p 参数指定主机和端…

一次收获颇丰的Google漏洞挖掘旅程

本文由安全专家Henry N. Caga于2024年03月23日发表在InfoSecWrite-ups网站&#xff0c;本文记录了Henry N. Caga的一次漏洞挖掘过程&#xff0c;此次漏洞挖掘的成果得到了Google官方认可&#xff0c;拿到了4133.70美元的漏洞奖金&#xff0c;并让他成功进入了Google名人堂。本文…

秘钥托管技术简介

目录 前言 一、秘钥托管是什么&#xff1f; 二、秘钥托管技术简介 1. Skipjack算法 2. LEAF产生过程示意图 3. 对加密通信的法律实施存取过程 总结 前言 1993年4月&#xff0c;美国政府为了满足其电信安全、公众安全和国家安全&#xff0c;提出了托管加密标准EES (escro…

ADOP带你了解:800G 收发器的类型和应用

随着对快速数据传输的需求不断增加&#xff0c;800G收发器因其高带宽、快速传输速率、出色的性能、紧凑的设计和面向未来的兼容性等特性而引起了人们的极大兴趣。在本文中&#xff0c;我们旨在概述各种 800G 光模块&#xff0c;并深入研究它们的应用&#xff0c;以帮助您在选择…

卷积计算过程详解(含图示和代码)

什么是卷积&#xff1f; 卷积是一种数学运算&#xff0c;通过两个函数f和g生成第三个函数&#xff0c;其本质是一种特殊的积分变换&#xff0c;表征函数f与g经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。卷积在泛函分析中扮演重要角色&#xff0c;可以被看作是“滑动平…

1.9.3 卷积神经网络中的瓶颈结构和沙漏结构提出的初衷是什么?可以应用于哪些问题?

chat瓶颈结构沙漏结构初衷瓶颈结构最初被引入用于深度卷积神经网络中&#xff0c;旨在通过减少中间特征图的通道数来降低计算复杂度&#xff0c;并在保持网络容量的同时减少参数量。这种设计能够在保持网络性能的前提下&#xff0c;提高计算效率和降低内存消耗。沙漏结构最初提…