Codeforces Global Round 27的C题
题目大意
给定一个n,n>=5
ans=0
ans&a1|a2&a3|a4&a5...an,数组a是一个排列
下标是奇数让ans对其进行&操作,否则进行|操作,求ans能达到的最大值.
分奇偶来讨论,在n为奇数的情况下,最后一次操作是|,在n为偶数的情况下,最后一次操作是&.
n二进制最高位的计算方法k=log2(n).
首先讨论n为奇数的情况下,最后一个数尝试放2^k,前n-1个数需要凑成2^k-1,我们只需要考虑前5个数就能够满足这些条件.
p[n-i]用来表示第n-i数是多少,p[n-5]放一个3,p[n-4]放一个1,p[n-3]放一个2^k-2,p[n-2]放一个2^k-1,p[n-1]放一个2^k,p[n-5]的二进制位是110,它的作用是保护最低位的1,p[n-4]的二进制位是100,它的作用是清空除了最低位1以外的所有1,经过前两步操作以后剩下100,p[n-3]的作用是避免p[n-2]被更改,p[n-3]最低位的1是没有了的,它和1进行|操作以后又变成了p[n-2],所以它和p[n-2]进行&操作不会改变p[n-2],最后和p[n-1]|进行操作,可以得到前k位全是1的最大数.
整理一下,猜测最大数为凑成前k位全是1的数,把它拆分成最高位1和剩下的1,分别放到p[n-1]和p[n-2]当中,要想顺利的达成目的,就得避免p[n-2]被改变,这要求p[n-3]和p[n-2]相等,但是排列不会出现两个相等的数,那么只能继续拆分p[n-2]变成最低位的1和剩余的1,剩余的1放在p[n-3]当中,p[n-4]当中放1,此时p[n-4]|p[n-3]=p[n-2],但要怎么避免1被改变呢,如果p[n-5]是一个偶数,它和p[n-4]进行&操作就会破坏掉1,那么这就要求p[n-5]是一个奇数,此时不管p[n-6]是多少它都不会破坏掉最低位的1,这样就可以保证p[n-4]的1不被破坏掉1了,我们选了3当做这个奇数,但是可以发现,当k位2的时候p[n-2]=2^k-1也等于3,这不行,排列不能重复,此时我们可以选择5,5没有出现过.到此奇数的情况就大功告成了.
下面讨论偶数的情况,我们知道n为偶数的情况下,最后一次操作是&,也就是我们能够凑成的最大的数是n,不妨就让p[n-1]等于n,此时要求p[n-2]也是n,但排列不能出现两个数,我们继续分解,分解成1和n-1,由于n是奇数,n-1的二进制位仅仅变化1那一位,现在我们让p[n-2]=n-1,而p[n-3]等于最低位是1的任何数,p[n-3]前面是&操作,这要求p[n-4]是个奇数,那就随便填两个数1,3就可以了,只要不和n和n-1重复即可.
void solve() {int n;std::cin >> n;int k = (int)std::log2(n);std::vector<int> p(n);int ans;std::vector<bool> vis(n + 1);if (n % 2 == 0) {ans = (2 << k) - 1;p[n - 1] = 1 << k;p[n - 2] = (1 << k) - 1;p[n - 3] = (1 << k) - 2;p[n - 4] = 1;p[n - 5] = k == 2 ? 5 : 3;for (int i = n - 5; i < n; i++) {vis[p[i]] = true;}for (int i = 0, x = 1; i < n - 5; i++) {while (vis[x]) {x++;}p[i] = x;vis[x] = true;}}else {ans = n;p[n - 1] = n;p[n - 2] = n - 1;p[n - 3] = 3;p[n - 4] = 1;for (int i = n - 4; i < n; i++) {vis[p[i]] = true;}for (int i = 0, x = 1; i < n - 4; i++) {while (vis[x]) {x++;}p[i] = x;vis[x] = true;}}std::cout << ans << "\n";int v = 0;for (int i = 0; i < n; i++) {if (i % 2 == 0) {v &= p[i];}else {v |= p[i];}std::cout << p[i] << " \n"[i == n - 1];}
}
相关文章:
Codeforces Global Round 27的C题
题目大意 给定一个n,n>5 ans0 ans&a1|a2&a3|a4&a5...an,数组a是一个排列 下标是奇数让ans对其进行&操作,否则进行|操作,求ans能达到的最大值. 分奇偶来讨论,在n为奇数的情况下,最后一次操作是|,在n为偶数的情况下,最后一次操作是&. n二进制最高位的计算…...
【Linux】Nginx一个域名https一个地址配置多个项目【项目实战】
👨🎓博主简介 🏅CSDN博客专家 🏅云计算领域优质创作者 🏅华为云开发者社区专家博主 🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入!…...
第36次CCF计算机软件能力认证 梦境巡查
梦境巡查 刷新 时间限制: 1.0 秒 空间限制: 512 MiB 相关文件: 题目目录 题目背景 传说每当月光遍布西西艾弗岛,总有一道身影默默守护着居民们的美梦。 题目描述 梦境中的西西艾弗岛由 �1n1 个区域组成。梦境…...
[机器学习]AdaBoost(数学原理 + 例子解释 + 代码实战)
AdaBoost AdaBoost(Adaptive Boosting)是一种Boosting算法,它通过迭代地训练弱分类器并将它们组合成一个强分类器来提高分类性能。 AdaBoost算法的特点是它能够自适应地调整样本的权重,使那些被错误分类的样本在后续的训练中得到…...
传统零售商商业升级的核心动机及与互联网业务融合的探索——以 AI 智能名片 S2B2C 商城小程序源码为例
摘要:本文旨在探讨传统零售商尝试商业升级的核心动机,并以 AI 智能名片 S2B2C 商城小程序源码为典型案例,分析互联网业务模式如何助力传统零售商转型。通过剖析传统零售增长模式的局限以及互联网业务在增长速度、迭代试错和用户需求洞察方面的…...
飞牛 fnos docker镜像部署OpenSpeedtest宽带网速测试教程
penSpeedTest是一个跨平台的网络测速应用,支持不同操作系统的浏览器,无需安装额外软件或插件。您可以在iPhone、iPad、Android设备、Windows和Linux系统的电脑、手机和平板上直接测试设备与NAS之间的宽带速度。 通过这个可以排查出设备与NAS之间的传输速…...
【C++】list
OK,最近浅浅学习了STL的list,有兴趣不妨垂阅! 目录 1.constructor 2.assign 3.insert 4.erase 5. reverse 6.swap 7.merge 8.unique 9.splice 10.小知识 同样的,使用list 需要包含一个头文件<list>。<list&g…...
keepalive的高可用集群
一、keepalived概述 1.keepalive的工作原理 keepalive是专门为了lvs集群开发出来的,但是适用场景不仅仅局限于lvs。而且keepalive为后台的真实服务器做了一个健康检查,当服务不可用时,会自动的移除ipvs的转发策略,服务恢复时&…...
HTTP 协议报文结构 | 返回状态码详解
注:本文为 “HTTP 历史 | 协议报文结构 | 返回状态码” 相关文章合辑。 未整理去重。 HTTP 历史 wangjunliang 最后更新: 2024/3/16 上午10:29 超文本传输协议(英语:HyperTextTransferProtocol,缩写:HTTP)是 万维网(World Wide Web)的基础协议。自 蒂姆…...
如何保证开源AI呼入机器人和AI呼出机器人的服务质量?
如何保证开源AI呼入机器人和AI呼出机器人的服务质量? 确保开源AI呼入机器人和AI呼出机器人的服务质量是企业成功部署这些智能系统的关键。高质量的服务不仅能够提高客户满意度,还能增强企业的市场竞争力。以下是实现这一目标的几个关键策略和技术措施&a…...
C++day7
#include <iostream>using namespace std; template <class T> class mylist{ public:struct Link{T val;Link* next;Link* front;};//增void insert(T val);//删void remove(T val);//改mylist& operator[](int index);//排序void Sort();//遍历void show();/…...
docker搭建Redis集群及哨兵(windows10环境,OSS Cluster)
一、基本概念 Redis:即 "Remote DIctionary Server" ,翻译为“远程字典服务器”。从字面意义上讲,它指的是一个远程的字典服务,意味着它是一个可以远程访问的服务,主要用于存储键值对(key-value pairs&…...
第8章 搬移特性
8.1 搬移函数 模块化是优秀软件设计的核心所在,好的模块化能够让我在修改程序时只需理解程序的一小部分。为了设计出高度模块化的程序,我得保证互相关联的软件要素都能集中到一块,并确保块与块之间的联系易于查找、直观易懂。同时,…...
[IT项目管理]项目时间管理(本章节3w字爆肝)
七.项目时间管理 7.1 项目进度的重要性 为什么要重视项目进度:在项目进行的过程之中会遇到变故。但是不论项目中发生了什么,时间总是在流逝,就可能会导致项目不可以在规定的时间完成。 7.2可能影响项目进度的因素 有员工离职个人的工作方…...
k8s中设置annotation的方法总结
k8s中设置annotation的方法总结 annotation是什么 在 Kubernetes 中,Annotations 是一种用于向 Kubernetes 对象附加非标识性元数据的机制。 annotation有什么用 annotation与 Labels 类似,但有一些关键区别和特定用途。 常用于存储与对象相关的配置…...
第19天:信息收集-Web应用源码获取闭源备份开发泄漏WebPack打包资源搜索ICO定位
#知识点 1、信息收集-Web应用-源码获取-已知指纹&未知指纹 2、信息收集-Web应用-源码获取-泄漏问题&发现指纹 一、参考文章: https://www.secpulse.com/archives/124398.html https://mp.weixin.qq.com/s/QgLDdaefXlZtvlSiFQShZw 二、源码泄漏原因ÿ…...
uniapp小程序的锚点定位(将页面滚动到目标位置)
小程序中,a页面跳转到b页面,跳转后滚动定位到b页面的特定位置。 1.uni.pageScrollTo传递一个scrollTop参数可以滚动到特定位置。2.可以通过 uni.createSelectorQuery()等获取定位元素的位置信息。3.uni.getSystemInfoSync()获取设备的导航栏和状态栏高度…...
py脚本部署到服务器定时启动
py脚本部署到服务器定时启动 一、准备好你的脚本二、把脚本放到服务器三、在服务器创建脚本所需要的环境1、安装 Miniconda(如果不想安装 Anaconda 或 Miniconda,可以直接使用 Python 的venv模块创建虚拟环境,但安装 Conda 会更方便管理不同版…...
相机不动,机构动作----Hands Eyes
最近在研究 手眼标定,发现大家都需付费,搞啥子,说好的开源。。。 以相机在上固定不动,机械手为 EPSON_Robot 为例,详细的一步一步实例操作指引 EPSON_Robot 的192.168.0.1 2004 Server 详细操作步骤 1. 启动程序 运…...
Jdk1.7到Jdk1.8 HashMap 发生了什么变化(底层)
从JDK 1.7到JDK 1.8,HashMap在底层实现上发生了显著的变化, 主要体现在数据结构、链表插入方式、哈希算法、扩容机制以及并发性方面。 以下是具体的变化点: 1. 数据结构的变化 JDK 1.7:HashMap的底层数据结构是数组单向链表。…...
微积分复习笔记 Calculus Volume 2 - 4.2 Direction Fields and Numerical Methods
4.2 Direction Fields and Numerical Methods - Calculus Volume 2 | OpenStax...
java后端环境配置
因为现在升学了,以前本来想毕业干java的,很多java的环境配置早就忘掉了(比如mysql maven jdk idea),想写个博客记录下来,以后方便自己快速搭建环境 JAVA后端开发配置 环境配置jdkideamavenMySQLnavicate17…...
Unity UI Button 事件优先级调整技术方案
Unity UI Button 事件优先级调整技术方案 在 Unity 项目开发过程中,针对 UI Button 的事件执行顺序控制是一个常见需求。本文详细阐述两种将新添加事件置于第一个执行位置的方法,旨在为开发者提供全面且专业的技术参考。 一、基于反射机制的事件插入方…...
【从零开始入门unity游戏开发之——C#篇04】栈(Stack)和堆(Heap),值类型和引用类型,以及特殊的引用类型string
文章目录 知识回顾一、栈(Stack)和堆(Heap)1、什么是栈和堆2、为什么要分栈和堆3、栈和堆的区别栈堆 4、总结 二、值类型和引用类型1、那么值类型和引用类型到底有什么区别呢?值类型引用类型 2、总结 三、特殊的引用类…...
PHP排序算法:数组内有A~E,A移到C或者C移到B后排序,还按原顺序排序,循环
效果 PHP代码 public function demo($params){function moveNext($arr){$length count($arr);$lastElement $arr[$length - 1];for ($i $length - 1; $i > 0; $i--) {$arr[$i] $arr[$i - 1];}$arr[0] $lastElement;return $arr;}function moveAndReplace($array, $from…...
keepalived的高可用集群
keepalived的概念 keepalived的工作原理 基于vrrp实现的调度器高可用方案 keepalived的配置实验 先在调度服务器上安装keepalived和ipvsadm apt -y install keepalived ipvsadm 复制keepalived的配置文件到/etc/keepalived/目录下 cp /usr/share/doc/keepalived/samples/keep…...
基于单片机的农田灌溉系统(论文+源码)
1.系统设计 本系统主要实现如下目标: 1.可以实时监测土壤湿度; 2.土壤湿度太低时,进行浇水操作; 3.可以按键设置湿度的触发阈值; 4. 可以实现远程操控 5.可以实现手…...
技术文档分享——绘制精准航海图:技术文档规划、表达与维护的艺术
绘制精准航海图:技术文档规划、表达与维护的艺术 方向一:技术文档的规划布局从技术文档的规划布局入手,探讨如何确定文档的整体架构,如章节设置、逻辑顺序等,以确保信息呈现的系统性与连贯性。1. 确定文档的目标和读者…...
43124123
📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...
Pytorch应用实战(1)- 基于YOLO的视频人脸马赛克处理
免费链接: Blogger(需翻Q), Github 文章目录 本文介绍给图片的人脸打码给视频的人脸打码本文介绍 YoloV11(Github)提供了非常方便的API帮助用户实现目标检测(detect)、语义分割(segement)、肢体识别(Pose)等功能。 本文将基于YoloV11的目标检测来实现一个视频人脸马…...
【Prompt Engineering】1.编写 Prompt 的原则
一、环境配置 使用 OpenAI 的 ChatGPT API,需要有 API_KEY,并安装 OpenAI 库。安装命令:pip install openai 和 pip install zhipuai。配置方法:直接设置 openai.api_key 或通过环境变量设置。 二、两个基本原则 2.1 原则一&am…...
非vip版opengl
环境搭建 安装编译器和构建工具:在 Windows 上可以使用 Visual Studio,在 Linux 上可以使用 GCC 等编译器。确保编译器已正确安装并配置好环境变量。安装 OpenGL 库和相关辅助库(以 GLUT 为例): Windows: 下…...
【深入理解Nginx】
深入理解Nginx 介绍 Nginx(发音为 “engine-x”)是一款高性能的HTTP服务器和反向代理服务器,同时支持IMAP/POP3协议。它以其高并发处理能力、稳定性、丰富的功能集、简单的配置和低资源消耗而受到广泛欢迎。Nginx特别适合提供静态文件服务、…...
番外篇 | Hyper-YOLO:超图计算与YOLO架构相结合成为目标检测新的SOTA !
前言:Hello大家好,我是小哥谈。Hyper-YOLO,该方法融合了超图计算以捕捉视觉特征之间复杂的高阶关联。传统的YOLO模型虽然功能强大,但其颈部设计存在局限性,限制了跨层特征的融合以及高阶特征关系的利用。Hyper-YOLO在骨干和颈部的联合增强下,成为一个突破性的架构。在COC…...
Microi吾码|开源低代码.NET、VUE低代码项目,表单引擎介绍
Microi吾码|开源低代码.NET、VUE低代码项目,表单引擎介绍 一、摘要二、Microi吾码介绍2.1 功能介绍2.2 团队介绍2.3 上线项目案例 三、Microi吾码表单引擎是什么?四、Microi吾码表单引擎功能4.1 模块引擎 - 由表单引擎驱动4.2 流程引擎 - 由表…...
css常用属性有哪些
在上篇文章我们知道了利用css选择器来对HTML进行简单装饰,就像做word文档一样,需要对哪一段落修改格式,就需要先选中,css选择器就是这意思。这格式如何修改,怎么放大字体,怎么加粗,怎么修改背景…...
Java设计模式 —— 【结构型模式】装饰者模式详解
文章目录 前言结构说明案例演示小结静态代理和装饰者的区别 前言 在日常生活中,我们常会遇到一种场景:去快餐店吃饭,里面琳琅满目的主食,还有各式各样的配菜作为消费者,只管挑选就行,但是如果让我们来设计…...
简道云与金蝶云星空无缝集成的技术探索
简道云数据集成到金蝶云星空的技术案例分享 在企业信息化建设中,数据的高效流动和准确对接是关键环节。本文将聚焦于一个实际运行的系统对接集成案例:简道云-其他入库单--->金蝶-其他入库单,通过轻易云数据集成平台实现这一目标。 案例背…...
单片机原理及应用笔记:单片机中断系统原理与项目实践
高金鹏:男,银川科技学院计算机与人工智能学院,2022级别计算机科学与技术本科生,单片机原理及应用课程第六组。 指导教师:王兴泽 电子邮件:高金鹏3535558665qq.com 个人CSDN:暴躁的海绵宝宝 暴躁的海绵宝…...
uniapp使用百度地图配置了key,但是显示Map key not configured
搞了我两天的一个问题。 hbuilderx版本:4.36 问题介绍: 我的项目是公司的项目,需要在H5端使用百度地图,使用vue-cli创建的uniapp,就是uni代码在src里的目录结构。就是使用这种方式才会遇到这个问题。 问题原因…...
CTFHub ssrf
第一关(内网访问) 尝试访问位于127.0.0.1的flag.php吧 第二关(伪协议读取文件) 尝试去读取一下Web目录下的flag.php吧 1.首先尝试http://127.0.0.1/flag.php 2.查看页面源代码 3.根据提示输入file:///var/www/html/flag.php 4.查看页面源代码 第三关&…...
字符串哈希
1. LC 3292 形成目标字符串需要的最少字符串数Ⅱ 这题在3291的基础上开大数据量了。 3291我是比较标准的dp字典树优化匹配。先把所有word扔到字典树里面,定义dp[i]表示到target[i]需要的最少次数。对于每个i进行target子串的最长前缀匹配,随后向后刷表…...
ensp 静态路由配置
A公司有广州总部、重庆分部和深圳分部3个办公地点,各分部与总部之间使用路由器互联。广州、重庆、深圳的路由器分别为R1、R2、R3,为路由器配置静态路由,使所有计算机能够互相访问,实训拓扑图如图所示 绘制拓扑图 给pc机配置ip地址…...
Android Room 数据库使用详解
一、Room介绍 Android Room 是 Google 提供的一个 Android 数据持久化库,是 Android Jetpack 组成部分之一。它提供了一个抽象层,使得 SQLite 数据库的使用更为便捷。通过 Room,开发者可以轻松地操作数据库,不需要直接编写繁琐的…...
Ubuntu安装或卸载mariadb-server软件包
1、安装mariadb-server sudo apt install mariadb-server 检查MariaDB服务器的服务状态 service mariadb status 仅需要卸载MariaDB,而不是删除所有MariaDB相关软件包 sudo apt-get remove mariadb-server 2、卸载MariaDB 从系统中完全删除MariaDB数据库…...
canal详解及demo
提示:如何保证Redis中的数据与数据库中的数据一致性?数据同步canal的介绍和demo、大型企业如何实现mysql到redis的同步?使用binlog实时更新redis缓存、canal的接入教程、win下canal的服务器端、canal客户端的创建、连接、测试教程、数据同步方…...
SQL语句
SQL(Structured Query Language,结构化查询语言)是用于管理和操作关系数据库系统的标准编程语言。它允许用户执行数据的定义、查询、更新和管理等操作。以下是一些常见的SQL语句及其简要说明: 数据定义语言(DDL&#…...
中间件 redis安装
redis官网地址:Redis - The Real-time Data Platform 环境 CentOS Linux release 7.9.2009 (Core) java version "17.0.12" 2024-07-16 LTS 1、通过压缩包安装redis 1,远程下载redis压缩包,或去官网下载:Downloads …...
设计模式12:抽象工厂模式
系列总链接:《大话设计模式》学习记录_net 大话设计-CSDN博客 参考: C设计模式:抽象工厂模式(风格切换案例)_c 抽象工厂-CSDN博客 1.概念 抽象工厂模式(Abstract Factory Pattern)是软件设计…...
学习笔记:从ncsi/nc-si协议和代码了解网络协议的设计范式
学习笔记:从ncsi/nc-si协议和代码了解网络协议的设计范式 参考文档: https://www.dmtf.org/standards/published_documents https://www.dmtf.org/dsp/DSP0222 https://www.dmtf.org/sites/default/files/standards/documents/DSP0222_1.2.0.pdf参考代…...