Codeforces\ Round\ 930(C.Bitwise Operation Wizard)

C o d e f o r c e s R o u n d 930 ( C . B i t w i s e O p e r a t i o n W i z a r d ) \Huge{Codeforces\ Round\ 930(C.Bitwise Operation Wizard)} Codeforces Round 930(C.BitwiseOperationWizard)

文章目录

  • 题意
  • 思路
    • 注意
  • 标程

题目链接:[B.Bitwise Operation Wizard](Problem - C - Codeforces)

本题是一道交互题,好久没做交互题了,记录一下。

题意

给出一个长度为 n n n ( 0 , n − 1 ) (0,n-1) (0,n1)的排列组合序列,要求找到下标 i , j i,j i,j,使得 p i X O R p j {\color{Red} p_i~XOR~p_j} pi XOR pj的值最大。

其中,题目给出不超过 3 n 3n 3n次查询:

查询格式为:? a b c d ( 0 ≤ a , b , c , d < n 0 \le a,b,c,d < n 0a,b,c,d<n)

返回为: x = ( p a ∣ p b ) x = (p_a \mid p_b) x=(papb) y = ( p c ∣ p d ) y = (p_c \mid p_d) y=(pcpd),返回字符 ′ < ′ , ′ > ′ , ′ = ′ '<','>','=' <,>,=分别对应 x < y , x > y , x = y x<y,x>y,x=y x<y,x>y,x=y三种情况。

最后输出结果:! i j

思路

  1. 首先考虑结果,易知:当 p j p_j pj n − 1 n-1 n1时, p i p_i pi ! ( p j ) !(p_j) !(pj)时, p i X O R p j {\color{Red} p_i~XOR~p_j} pi XOR pj的值最大。
  2. 所以我们可以用? a a b b,在 n n n次内找出最大值的下标,即 p j p_j pj j j j
  3. 然后我们用? j mx j i,在 n n n次内找出所有与 p j p_j pj进行或运算之后的最大值下标
  4. 然后我们枚举所有的下标,找出最小的 p i p_i pi,即为所求。
  5. 易证:所有与 p j p_j pj进行或运算后的结果相等的数字中,最小的数与 p j p_j pj进行 X O R XOR XOR运算结果最大

注意

在交互题中,交互过程中的输入输出需要刷新输入输出,c/c++通常使用fflush(stdout)cout.flush()

标程

char query(int a, int b, int c, int d) {char ch;cout << "? " << a <<' '<< b <<' '<< c <<' '<< d << endl;cout.flush();cin >> ch;cout.flush();return ch;
}void Solved() {int n; cin >> n;int res1 = 0, res2 = 0, mx = 0;vector<int> a;for(int i = 1; i < n; i ++ ) {char ch = query(res1, res1, i, i);if(ch == '<') res1 = i;}a.push_back(0);for(int i = 1; i < n; i ++ ) {char ch = query(mx, res1, i, res1);if(ch == '<') {mx = i; a.clear(); a.push_back(i);}if(ch == '=') a.push_back(i);}res2 = a.front();for(int i = 1; i < a.size(); i ++ ) {char ch = query(res2, res2, a[i], a[i]);if(ch == '>') res2 = a[i];}cout << "! " << res1 << ' ' << res2 << endl;cout.flush();
}

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

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

相关文章

Spring cloud gateway解决网关跨域问题

一、Spring cloud gateway介绍 Spring Cloud Gateway是一个基于Spring Framework 5&#xff0c;Spring Boot 2和Project Reactor等技术构建的API网关服务。它旨在为微服务架构中的应用程序提供统一的路由服务&#xff0c;同时还具有过滤、流量控制、安全性、监控等功能。 主要…

知乎x-zse-96逆向

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章…

JAVA每日面经——JVM篇(包含JVM优化)

&#x1f469;&#x1f3fd;‍&#x1f4bb;个人主页&#xff1a;阿木木AEcru &#x1f525; 系列专栏&#xff1a;《Docker容器化部署系列》 《Java每日面筋》 &#x1f4b9;每一次技术突破&#xff0c;都是对自我能力的挑战和超越。 目录 一、什么是JVM&#xff1f;二、JVM由…

酷开系统用电视为居家生活打开精彩窗口|酷开科技|酷开会员|

随着互联网的发展&#xff0c;电视也承载了更多的功能。相比于传统的电视&#xff0c;如今的智能电视屏幕更大、分辨率更高、色彩更加鲜艳&#xff0c;能够呈现出更加逼真的画面效果。当观众观看大屏电视时&#xff0c;仿佛置身于电影大幕的场景之中&#xff0c;感受到更为震撼…

NodeJs接入腾讯云存储COS

什么是腾讯云COS 腾讯云的 COS&#xff08;Cloud Object Storage&#xff09;是一种对象存储服务&#xff0c;类似于亚马逊的 S3&#xff08;Simple Storage Service&#xff09;。COS 提供了存储和管理大规模数据的能力&#xff0c;用户可以通过 COS 存储和检索各种类型的数据…

html常见标签

width宽度 height高度 border边框 1px&#xff08;边框线条宽度&#xff09; solid&#xff08;实线&#xff09; red&#xff08;红色&#xff09; border-radius: 100px 边框圆角 background-color&#xff1a;red&#xff08;背景颜色为红色&#xff09; margin&#xf…

面试常问问题

1.数据库的优化 选取最适用的字段属性&#xff0c;可以将表中字段的宽度设得尽可能小 使用连接&#xff08;JOIN&#xff09;来代替子查询 使用联合(UNION)来代替手动创建的临时表 防止数据的完整性&#xff0c;使用事务 如果用户访问数据库较大时可以通过锁定表的方式来获…

获取比特币和莱特币的实时价格

数据来源&#xff1a; https://datacenter.jin10.com/reportType/dc_bitcoin_current 代码&#xff1a; import akshare as ak import pandas as pd pd.set_option(display.max_columns, None) pd.set_option(display.max_rows, None) pd.set_option(display.width, 1000)cr…

「Linux系列」Shell 变量定义及运用

文章目录 一、Shell 变量的定义规则二、Shell变量的定义方法三、Shell变量的运用问题1. 变量未定义或为空2. 变量名拼写错误3. 变量作用域问题4. 变量值被意外修改5. 变量扩展问题6. 环境变量与局部变量冲突 四、相关链接 一、Shell 变量的定义规则 在Shell中&#xff0c;变量…

2024年最新Anaconda3 2024版中Jupyter Notebook安装

一、 Anaconda3 2024版下载 1.下载&#xff1a;Free Download | Anaconda 2.等待 解释&#xff1a;默认选择等等下载 &#xff0c;时间可能数分钟 3.安装 解释&#xff1a;打开刚刚下载的Anaconda Navigator&#xff0c;并如图安装低版本&#xff0c;高版本会直接报错 4. …

CSS学习笔记:transform属性实现元素的位移、旋转、缩放

位移 实现居中的两种方法 绝对定位的盒子在父盒子中实现居中效果有两种方法 法一&#xff1a;margin 其中&#xff0c;left和top的值分别为子盒子自身宽高的一半 法二&#xff1a;translate 实现过渡效果 translate常常配合hover和transition使用&#xff0c;以实现鼠标悬停…

微博修改密码后无法通过微博开放接口发送微博

生产环境&#xff0c;因密码修改导致授权失效致接口发送微博失效&#xff01;内部网站编辑完博文后无法发送微博。在修改密码时&#xff0c;有提示授权应用失效&#xff0c;操作人员不清晰情况&#xff0c;直接忽视。 微博应用开放接口----》微博转发博文接口文档 无示例 遗憾…

突破边界:Web3开启数字化社会的新纪元

引言 随着科技的不断进步和数字化社会的发展&#xff0c;Web3正逐渐成为了人们关注的焦点。作为新一代互联网的演进形态&#xff0c;Web3具有突破传统边界、实现去中心化的特点&#xff0c;被认为将开启数字化社会的新纪元。本文将深入探讨Web3的概念、特点、应用场景&#xf…

【LeetCode: 224. 基本计算器 + 模拟 + 栈】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

Java的集合体系及相关数据结构---Collection系列

​​​​​​​ 其中&#xff0c;有序和无序是指存取时候的顺序一致或者不一致&#xff1b; Collection是单列集合的顶层接口&#xff0c;它的方法全部单列集合可用。 Collection方法 方法名说明boolean add(E e)添加元素boolean remove(Object o)从集合中移除指定的元素…

微信小程序事件处理

微信小程序中的事件处理是指在微信小程序中处理用户的交互操作&#xff0c;例如点击按钮、选择器改变等。微信小程序中的事件处理分为以下几种&#xff1a; bindtap&#xff1a;点击事件。bindchange&#xff1a;选择器改变事件。bounddata&#xff1a;数据改变事件。 以下是…

SQL Server 的日志文件占满硬盘时处理方法

当 SQL Server 的日志文件占满硬盘时&#xff0c;可以采取以下几个步骤来解决问题&#xff1a; 1. 备份和压缩日志文件&#xff1a;首先&#xff0c;你可以通过备份数据库日志文件并压缩它们来释放磁盘空间。可以使用 SQL Server Management Studio (SSMS) 或 Transact-SQL (T…

语音转文字——sherpa ncnn语音识别离线部署C++实现

简介 Sherpa是一个中文语音识别的项目&#xff0c;使用了PyTorch 进行语音识别模型的训练&#xff0c;然后训练好的模型导出成 torchscript 格式&#xff0c;以便在 C 环境中进行推理。尽管 PyTorch 在 CPU 和 GPU 上有良好的支持&#xff0c;但它可能对资源的要求较高&#x…

HarmonyOS 应用开发案例

本帖下方集中了HarmonyOS Next应用开发时&#xff0c;会遇到的常见应用案例。后续会持续更新大量案例&#xff0c;帮助开发者快速学习。欢迎感兴趣的同学加入Q&#xff1a;454901491 72.手写绘制及保存图片案例&#xff08;0319更新&#xff09;&#xff08;点此查看源码实现&…

Windows10无盘母盘制作-以云更新为例

Windows10无盘母盘制作-以云更新为例 缘起环境准备创建虚拟机安装系统导出系统 缘起 网吧客户端在实际环境中&#xff0c;经常要面对形形色色对无盘系统&#xff0c;五花八门对无盘镜像&#xff0c; 为了方便确认不同无盘环境对客户的对影响&#xff0c;决定自己制作一个无盘母…