当前位置: 首页 > article >正文

【洛谷】【ARC100E】Or Plus Max(高维前缀和)

传送门:Or Plus Max        高维前缀和


题目描述

長さ 2N の整数列 A0​, A1​, ..., A2N−1​ があります。(添字が 0 から始まることに注意)

1 ≤ K ≤ 2N−1 を満たすすべての整数 K について、次の問題を解いてください。

  • i,j を整数とする。0 ≤ i < j ≤ 2N−1, (i or j) ≤ K のとき、Ai​ + Aj​ の最大値を求めよ。 ただしここで or はビットごとの論理和を表す。

输入格式

入力は以下の形式で標準入力から与えられる。

N A0​ A1​ ... A2N−1​

输出格式

2N−1 行出力せよ。 i 行目には、K=i のときの上記の問題の答えを出力せよ。


题意翻译

给你一个长度为 2n 的序列 a,每个1≤K≤2n−1,找出最大的 ai​+aj​(iorj≤K,0≤i<j<2n)并输出。
or 表示按位或运算。

输入输出样例

输入 #1

2
1 2 3 1

输出 #1

3
4
5

输入 #2

3
10 71 84 33 6 47 23 25

输出 #2

81
94
155
155
155
155
155

输入 #3

4
75 26 45 72 81 47 97 97 2 2 25 82 84 17 56 32

输出 #3

101
120
147
156
156
178
194
194
194
194
194
194
194
194
194

题解

思路:

下面是详细注释后的代码:

#include <bits/stdc++.h>
using namespace std;
#define ll long long  // 定义long long类型别名const int INF = 1e9 + 1;  // 定义一个极大值INF,用于初始化次大值// 定义一个结构体Data,用于存储最大值和次大值
struct Data {ll first, second;  // first存储最大值,second存储次大值// 重载+运算符,用于合并两个Data对象Data operator+(const Data &t) {Data y;if (first > t.first) {  // 如果当前最大值大于t的最大值y.first = first;  // 更新最大值y.second = max(t.first, second);  // 更新次大值为t的最大值和当前次大值的较大者} else {  // 否则y.first = t.first;  // 更新最大值为t的最大值y.second = max(t.second, first);  // 更新次大值为t的次大值和当前最大值的较大者}return y;}
} A[1 << 19];  // 定义一个大小为2^19的Data数组A,用于存储每个子集的最大值和次大值int main() {int n;cin >> n;  // 输入n,表示集合的大小ll m = 1 << n;  // 计算m = 2^n,表示所有子集的数量// 初始化数组Afor (ll i = 0; i < m; i++) {cin >> A[i].first;  // 输入每个子集的初始值A[i].second = -INF;  // 将次大值初始化为-INF}// 动态规划计算每个子集的最大值和次大值for (int i = 0; i < n; i++) {  // 遍历每一位for (int j = 0; j < m; j++) {  // 遍历所有子集if ((j >> i) & 1) {  // 如果子集j的第i位为1A[j] = A[j] + A[j ^ (1 << i)];  // 合并子集j和子集j^(1<<i)的最大值和次大值}}}ll ans = 0;  // 初始化答案为0for (int i = 1; i <= m - 1; i++) {  // 遍历所有非空子集ans = max(ans, A[i].first + A[i].second);  // 更新答案为当前子集的最大值和次大值之和的最大值cout << ans << endl;  // 输出当前答案}return 0;
}

相关文章:

【洛谷】【ARC100E】Or Plus Max(高维前缀和)

传送门&#xff1a;Or Plus Max 高维前缀和 题目描述 長さ 2N の整数列 A0​, A1​, ..., A2N−1​ があります。&#xff08;添字が 0 から始まることに注意&#xff09; 1 ≤ K ≤ 2N−1 を満たすすべての整数 K について、次の問題を解いてください。 i,j を整数と…...

宿主机的 root 是否等于 Docker 容器的 root?

在 Docker 容器化技术中&#xff0c;宿主机的 root 和 容器的 root 并不完全相同&#xff0c;尽管它们都称作 “root 用户”。这里需要明确的是&#xff0c;Docker 容器与宿主机之间存在隔离机制&#xff0c;容器内的 root 用户和宿主机的 root 用户有一些关键的区别。 1. 宿主…...

SmolLM2:多阶段训练策略优化和高质量数据集,小型语言模型同样可以实现卓越的性能表现

SmolLM2 采用创新的四阶段训练策略&#xff0c;在仅使用 1.7B 参数的情况下&#xff0c;成功挑战了大型语言模型的性能边界&#xff1a; 在 MMLU-Pro 等测试中超越 Qwen2.5-1.5B 近 6 个百分点数学推理能力&#xff08;GSM8K、MATH&#xff09;优于 Llama3.2-1B在代码生成和文…...

云原生降本之路:技术创新与应用解析

随着云计算的快速发展&#xff0c;云原生技术已成为企业降低成本、提高效率的重要手段。本文基于腾讯云容器技术专家孟凡杰的PPT内容&#xff0c;深入探讨了云原生技术在降低企业成本方面的应用&#xff0c;包括资源利用现状、成本优化思路、Kubernetes中的资源分配、横向与纵向…...

《Effective Objective-C》阅读笔记(中)

目录 接口与API设计 用前缀避免命名空间冲突 提供“全能初始化方法” 实现description方法 尽量使用不可变对象 使用清晰而协调的命名方式 方法命名 ​编辑类与协议命名 为私有方法名加前缀 理解OC错误模型 理解NSCopying协议 协议与分类 通过委托与数据源协议进行…...

Hbase客户端API——语句大全

目录 创建表&#xff1a; 插入数据&#xff1a; 删除数据&#xff1a; 修改数据&#xff1a; 查询数据&#xff1a;Get 查询数据&#xff1a;Scan 查询数据&#xff1a;过滤查询 创建表&#xff1a; 检验&#xff1a; 插入数据&#xff1a; 验证 一次多条数据插入 验证&…...

MQ(Message Queue)

目录 MQ(Message Queue)基本概念 为什么要使用消息队列&#xff1f; 使用消息队列有什么缺点&#xff1f; 如何保证消息不丢失?(如何保证消息的可靠性传输?/如何处理消息丢失的问题?) 通用的MQ场景&#xff1a; RabbitMQ如何保证消息不丢失&#xff1f; 生产者丢数据…...

SQL进阶实战技巧:汽车转向次数分析 | 真实场景案例

目录 0 问题描述 1 数据准备 2 问题分析 3 小结 关键技术总结 0 问题描述 现有一组实际汽车在平整路面安全行驶数据,每秒记录一次汽车的车头绝对指向,车头方向记为[0-360)度,部分数据如下,完整数据后附文件。...

青少年软件编程(C语言)等级三级考试试题(2)

Minecraft 题目描述 Minecraft 是一个几乎无所不能的沙盒游戏&#xff0c;玩家可以利用游戏内的各种资源进行创造&#xff0c;搭建自己的世界。 在 Minecraft 中&#xff0c;基本的建筑元素是边长为 1 个单位的立方体&#xff0c;Tony 想用 N 个这种小立方体搭建一个长方体&…...

计算机网络————(三)

前文二 前文一 Websocket协议 是一种存在TCP协议之上的协议 当客户端需要了解服务器是否更新就需要不断给客户端发送请求询问是否更新&#xff0c;这行会造成服务端压力很大 而Websocket相当于服务器一旦更新了就会给客户端发送消息表明自己更新了&#xff0c;类似客户端订阅…...

【音视频】音视频录制、播放原理

一、音视频录制原理 通常&#xff0c;音视频录制的步骤如下图所示&#xff1a; 我们分别从音频和视频开始采样&#xff0c;通过麦克风和摄像头来接受我们的音频信息和图像信息&#xff0c;这通常是同时进行的&#xff0c;不过&#xff0c;通常视频的采集会比音频的采集慢&…...

如何用python将pdf转为text并提取其中的图片

要将 PDF 转为文本并提取其中的图片&#xff0c;可以使用 Python 的几个库来实现&#xff1a; PDF 转文本&#xff1a;使用 PyMuPDF 或 pdfplumber 来提取文本。提取图片&#xff1a;使用 PyMuPDF 或 pdf2image 来提取图像。 以下是实现的步骤和代码示例&#xff1a; 1. 安装…...

deepseek 导出导入模型(docker)

前言 实现导出导入deepseek 模型。deepseek 安装docker下参考 docker 导出模型 实际生产环境建议使用docker-compose.yml进行布局&#xff0c;然后持久化ollama模型数据到本地参考 echo "start ollama" docker start ollama#压缩容器内文件夹&#xff0c;然后拷贝…...

基于Redis 的分布式 session 图解

Redis 分布式 Session 工作原理 1. 传统 Session 的问题 在传统单服务器环境中&#xff0c;HTTP Session 存储在应用服务器的内存中。这在分布式系统中会导致问题&#xff1a; 用户的请求可能被分发到不同服务器&#xff0c;导致会话不一致服务器宕机会导致会话丢失需要依赖…...

Vue进阶之AI智能助手项目(四)——ChatGPT的调用和开发

AI智能助手项目 前端接口部分src/api/index.tssrc/utils/request/index.tspost方法httpHttpOptionsrc/utils/request/axios.tsLayout布局页面-viewsexception异常页面src/views/exception/404/index.vuesrc/views/exception/500/index.vueLayout布局页面src/views/chat/layout/…...

DeepSeek-R1本地部署保姆级教程

一、DeepSeek-R1本地部署配置要求 &#xff08;一&#xff09;轻量级模型 ▌DeepSeek-R1-1.5B 内存容量&#xff1a;≥8GB 显卡需求&#xff1a;支持CPU推理&#xff08;无需独立GPU&#xff09; 适用场景&#xff1a;本地环境验证测试/Ollama集成调试 &#xff08;二&a…...

【deepseek】本地部署+webui访问

背景 最近deepseek很火&#xff0c;但是官网的老是被限流使用&#xff0c;还有就是自己也想着玩一玩&#xff0c;于是准备在自己电脑跑一个 直接附上结果地址mydeepseek 准备工作 windows和linux都可 我这里选择linux&#xff0c;ubuntu系统 安装ollama 看下图&#xff0…...

deepseek部署:ELK + Filebeat + Zookeeper + Kafka

## 1. 概述 本文档旨在指导如何在7台机器上部署ELK&#xff08;Elasticsearch, Logstash, Kibana&#xff09;堆栈、Filebeat、Zookeeper和Kafka。该部署方案适用于日志收集、处理和可视化场景。 ## 2. 环境准备 ### 2.1 机器分配 | 机器编号 | 主机名 | IP地址 | 部署组件 |-…...

博客系统笔记总结 2( Linux 相关)

Linux 基本使用和程序部署 基本命令 文件操作 显示当前目录下的文件 ls&#xff1a;显示当前目录下的文件 ll&#xff1a;以列表的形式展示&#xff0c;包括隐藏文件 进入目录 && 显示当前路径 cd&#xff1a;进入目录&#xff08;后面跟相对路径或者绝对路径&…...

Flutter - 基础Widget

Flutter 中万物皆 Widget&#xff0c;基础Widget 同步对应 Android View. 普通文本 Text /*** 控制文本样式统一使用 style:TextStyle, 例&#xff1a;fontSize(字体大小),color(颜色),shadows(阴影)等等* 控制文本布局需单独设置&#xff1a;* textAlign(文不对齐方式)* te…...

如何在 Linux 上安装和配置 Zsh

文章目录 如何在 Linux 上安装和配置 Zsh1. 安装 Zsh1.1 在 Ubuntu/Debian 上安装1.2 在 CentOS/RHEL/Fedora 上安装1.3 在 Arch Linux 上安装1.4 验证 Zsh 安装 2. 设置 Zsh 为默认 Shell2.1 验证默认 shell 3. 配置 Zsh3.1 使用 Oh My Zsh3.1.1 安装 Oh My Zsh3.1.2 启用插件…...

【System Verilog and UVM基础入门26】Verdi使用教程指南

《Verdi使用教程指南 》 下载链接&#xff1a; https://download.csdn.net/download/TommiWei/90429701https://download.csdn.net/download/TommiWei/90429701 朋友你好&#xff0c;不管你是否使用过Verdi这款EDA仿真工具。 不管你是否还在寻找免费的使用教材。 不管你是否…...

3dtiles平移旋转工具制作

3dtiles平移旋转缩放原理及可视化工具实现 背景 平时工作中&#xff0c;通过cesium平台来搭建一个演示场景是很常见的事情。一般来说&#xff0c;演示场景不需要多完善的功能&#xff0c;但是需要一批三维模型搭建&#xff0c;如厂房、电力设备、园区等。在实际搭建过程中&…...

【STL专题】优先级队列priority_queue的使用和模拟实现,巧妙利用仿函数解决优先级

欢迎来到 CILMY23的博客 &#x1f3c6;本篇主题为&#xff1a;优先级队列priority_queue的使用和模拟实现&#xff0c;巧妙利用仿函数解决优先级 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a; C | C语言 | 数据结构与算法 | Linux…...

数据开发面试:DQL,

DQL常见面试题 where 和 having 的区别 三个排序开窗函数的区别 left join 用where 筛选 和 用on筛选的区别 ON 子句&#xff1a;用于定义连接条件&#xff0c;不会丢失左表的行。 WHERE 子句&#xff1a;用于过滤连接后的结果集&#xff0c;可能会丢失左表中没有匹配的行 …...

学习Flask:Day 2:模板与表单开发

学习目标&#xff1a;前后端混合开发 # 添加模板渲染 from flask import render_templateapp.route(/profile) def profile():return render_template(profile.html, username"开发者",skills[Vue, JavaScript]) ✅ 实践任务&#xff1a; 创建templates目录 使用J…...

最长递增子序列(贪心算法)思路+源码

文章目录 题目[](https://leetcode.cn/problems/longest-increasing-subsequence/)算法原理源码总结题目 首先,要掌握动态规划加二分查找 算法原理 1.回顾dp的解法 状态表示:dp[i]表示:以i位置的元素为结尾的所有的子序列中,最长递增子序列的长度 状态转移方程:dp[i]= m…...

Orange 开源项目 - 集成百度智能云-千帆大模型

1 集成百度智能云-千帆大模型 百度智能云-千帆ModelBuilder百度智能云千帆大模型服务与开发平台ModelBuilder&#xff08;以下简称千帆ModelBuilder&#xff09;是面向企业开发者的一站式大模型开发及服务运行平台。千帆ModelBuilder不仅提供了包括文心一言底层模型和第三方开源…...

前缀和代码解析

前缀和是指数组一定范围的数的总和,常见的有两种,一维和二维,我会用两道题来分别解析 一维 DP34 【模板】前缀和 题目: 题目解析: 暴力解法 直接遍历数组,遍历到下标为 l 时,开始进行相加,直到遍历到下标为 r ,最后返回总和.这样做的时间复杂度为: O(n) public class Main …...

C 语言结构体:从入门到进阶的全面解析

一、结构体类型的声明 1.1 结构的声明 结构体是一种自定义的数据类型&#xff0c;允许将不同类型的数据组合成一个整体。声明语法如下&#xff1a; struct 结构体名 {数据类型 成员1;数据类型 成员2;// ... }; 示例&#xff1a; struct Student {char name[20];int age;fl…...