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,n−1)的排列组合序列,要求找到下标 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 0≤a,b,c,d<n)
返回为: x = ( p a ∣ p b ) x = (p_a \mid p_b) x=(pa∣pb) 和 y = ( p c ∣ p d ) y = (p_c \mid p_d) y=(pc∣pd),返回字符 ′ < ′ , ′ > ′ , ′ = ′ '<','>','=' ′<′,′>′,′=′分别对应 x < y , x > y , x = y x<y,x>y,x=y x<y,x>y,x=y三种情况。
最后输出结果:! i j。
思路
- 首先考虑结果,易知:当 p j p_j pj为 n − 1 n-1 n−1时, 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的值最大。
- 所以我们可以用
? a a b b,在 n n n次内找出最大值的下标,即 p j p_j pj的 j j j。 - 然后我们用
? j mx j i,在 n n n次内找出所有与 p j p_j pj进行或运算之后的最大值下标。 - 然后我们枚举所有的下标,找出最小的 p i p_i pi,即为所求。
- 易证:所有与 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();
}
相关文章:
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 Operati…...
监控系统prometheus+grafana+发送告警信息
1、基础环境准备两台或更多的主机 2、关闭selinux vi /etc/selinux/config,修改SELINUX的值为disabled 3、关闭防火墙 systemctl disable firewalld systemctl stop firewalld 4、prometheus官网下载 https://prometheus.io/download/ 5、grafana官网下载 https…...
IoT 物联网场景中如何应对安全风险?——青创智通
工业物联网解决方案-工业IOT-青创智通 随着物联网(IoT)技术的快速发展,越来越多的设备、系统和应用被连接到互联网上,从而构建了一个庞大的物联网生态系统。然而,这种连接性也带来了前所未有的安全风险。在物联网场景…...
滴滴基于 Clickhouse 构建新一代日志存储系统
滴滴基于 Clickhouse 构建新一代日志存储系统 ClickHouse 是2016年开源的用于实时数据分析的一款高性能列式分布式数据库,支持向量化计算引擎、多核并行计算、高压缩比等功能,在分析型数据库中单表查询速度是最快的。2020年开始在滴滴内部大规模地推广和应用,服务网约车和日…...
虚拟主机去除index.php目录地址
复制代码到NGINX设置 虚拟主机去除index.php目录地址-复制代码-NGINX设置 location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s/$1 last; break; } } location ~ /\.ht { deny all; }...
JD商品详情原数据 API 返回值说明
一、应用场景 商品详情原数据API的应用场景广泛而多样。具体来说,它可以被用于以下方面: 1、电商平台数据分析:电商平台可以通过商品详情原数据API提取商品销售数据、质量评分、评论和反馈等信息,从而帮助用户更好地理解市场和竞…...
python日常刷题(一)
前言:本文记录2024年3月11日至2024年3月19日牛客网所做的基础题目(错题本): 🎬个人简介:努力学习ing 📋本专栏:python日常刷题 🎀CSDN主页:愚润求学 文章目录…...
Python 利用pandas和mysql-connector获取Excel数据写入到MySQL数据库
如何将Excel数据插入到MySQL数据库中 在实际应用中,我们可能需要将Excel表格中的数据导入到MySQL数据库中,以便于进行进一步的数据分析和处理。本文将介绍如何使用Python将Excel表格中的数据插入到MySQL数据库中。 导入必要的库 首先,我们…...
Stable Diffusion训练图片时,简陋的数据处理
0 图片从命名 如果有强迫症,看到似乎乱码的命名会不舒服,那么就批量从命名 import osdef rename_files_in_directory(directory, key_word, new_suffix):i 1for filename in os.listdir(directory):new_file key_word str(i).zfill(3) new_suffixsou…...
如何在ubuntu 18.04中升级python 3.6到3.7
在ubuntu下安装python 3.7有两种方法: 1,通过使用Deadsnakes PPA中的标准apt工具(本文暂时只介绍这种方法) 2,从源代码进行构建。 前提条件: 需要以root用户或具有sudo访问权限的用户身份登录才能在Ubuntu系统上安装软件包。 方法一:使用apt工具安装…...
python爬虫基础实验:通过DBLP数据库获取数据挖掘顶会KDD在2023年的论文收录和相关作者信息
Task1 读取网站主页整个页面的 html 内容并解码为文本串(可使用urllib.request的相应方法),将其以UTF-8编码格式写入page.txt文件。 Code1 import urllib.requestwith urllib.request.urlopen(https://dblp.dagstuhl.de/db/conf/kdd/kdd202…...
简单记录一次帮维修手机经历(Vivo x9)
简介 手边有一台朋友亲戚之前坏掉的Vivo X9手机, 一直说要我帮忙修理一下, 我一直是拒绝的, 因为搞程序的不等于维修的(会电脑不等于维修电器),不知道这种思路如何根深蒂固的,不过好吧ÿ…...
ap聚类是什么
AP聚类(Affinity Propagation clustering)是一种聚类算法,它基于数据点之间的相似度进行聚类。AP聚类算法无需预先指定簇的数量,而是根据数据点之间的相似性动态地确定簇的个数和分配情况。 AP聚类的核心思想是通过迭代计算数据点…...
C数据类型(C语言)---变量的类型决定了什么?
目录 数据类型(Data Type) 变量的类型决定了什么? (1)不同类型数据占用的内存大小不同 如何计算变量或类型占内存的大小 (2)不同数据类型的表数范围不同 (3)不同类型…...
axios、axios二次封装、api解耦
import axios from axios// 环境的切换切换测试与生产环境 if (process.env.NODE_ENV development) { axios.defaults.baseURL /api; } else if (process.env.NODE_ENV debug) { axios.defaults.baseURL ; } else if (process.env.NODE_ENV production) { axios.…...
HTML 特殊元素:展示PDF、展示JSON 数据
<pre> 标签 (preformatted text) <pre> 标签用来表示预格式化的文本内容 在页面数据展示时,后端返回了一段未经处理的JSON 数据,将这段数据在页面正常展示,让可读性更高。 {/"project": {/ "title": "…...
算法·动态规划Dynamic Programming
很多人听到动态规划或者什么dp数组了,或者是做到一道关于动态规划的题目时,就会有一种他很难且不好解决的恐惧心理,但是如果我们从基础的题目开始深入挖掘动规思想,在后边遇到动态规划的难题时就迎难而解了。 其实不然ÿ…...
鸿蒙Harmony应用开发—ArkTS-转场动画(共享元素转场)
当路由进行切换时,可以通过设置组件的 sharedTransition 属性将该元素标记为共享元素并设置对应的共享元素转场动效。 说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 属性 名称参数参数描述…...
【C语言】循环语句(语句使用建议)
文章目录 **while循环****while循环的实践****补充:if语句与while语句区别****for循环(使用频率最高)****for循环的实践****while循环和for循环的对比****Do-while循环****break和continue语句****循环的嵌套****goto语句(不常用)****循环语句的效率(来自于高质量的C/C编程书籍…...
Spring Data访问Elasticsearch----响应式Reactive存储库
Spring Data访问Elasticsearch----响应式Reactive存储库 一、用法二、配置 Reactive Elasticsearch存储库支持建立在存储库中解释的核心存储库支持之上,利用由 Reactive REST客户端执行的 Reactive Elasticsearch Operations提供的操作。 Spring Data Elasticsear…...
第30篇:AI辅助法律与合同审查——降低中小企业风险的成本利器(项目实战)
文章目录项目背景技术选型架构设计核心实现踩坑记录效果对比项目背景 在上一轮创业时,我吃过合同的亏。一份看似标准的采购协议,因为一个模糊的“验收标准”条款,导致交付后与供应商扯皮了近三个月,最终以我们承担额外成本告终。…...
**SolidJS 与响应式状态管理的极致融合:构建高性能前端应用的新范式**在现代前端开发中
SolidJS 与响应式状态管理的极致融合:构建高性能前端应用的新范式 在现代前端开发中,性能优化和开发体验已成为衡量框架优劣的核心指标。近年来,SolidJS 凭借其独特的“无虚拟 DOM”设计理念、细粒度响应式系统以及接近原生 JavaScript 的性能…...
告别死板界面!Nanbeige 4.1-3B Streamlit WebUI极简版,一键搭建二次元对话助手
告别死板界面!Nanbeige 4.1-3B Streamlit WebUI极简版,一键搭建二次元对话助手 1. 引言:当极简设计遇上AI对话 如果你曾经尝试过本地部署大语言模型的Web界面,可能会被那些拥挤的侧边栏、死板的方形头像和单调的聊天气泡劝退。传…...
【Gartner未公开预警】:无监控的AI生成代码=定时技术债炸弹(附企业级SLA保障检查表)
第一章:【Gartner未公开预警】:无监控的AI生成代码定时技术债炸弹(附企业级SLA保障检查表) 2026奇点智能技术大会(https://ml-summit.org) Gartner内部风险评估备忘录(ID: GTR-AI-DEV-2024-Q3-CONFIDENTIAL࿰…...
Windows系统优化终极指南:用Winhance轻松提升电脑性能30%以上
Windows系统优化终极指南:用Winhance轻松提升电脑性能30%以上 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Winh…...
告别GPS水准测量!用Matlab+EGM2008模型5分钟搞定高程异常计算(附完整代码)
5分钟实现高程异常计算:Matlab与EGM2008的工程实践指南 在测绘工程领域,GPS测量获取的大地高数据需要转换为实际工程使用的正常高,这一过程传统上依赖费时费力的水准联测。我曾参与某山区输电线路勘测项目,团队在两周内完成了50公…...
别再只用VAE或GAN了!手把手教你用PyTorch复现VAE-GAN,生成更清晰的人脸图像
突破生成模型边界:PyTorch实战VAE-GAN融合架构与CelebA人脸生成优化 当我们在CelebA数据集上观察VAE生成的模糊人脸与GAN产生的扭曲五官时,一个关键问题浮现:是否存在兼具两者优势的解决方案?2016年ICML论文《Autoencoding beyond…...
失物招领|基于java + vue失物招领系统(源码+数据库+文档)
失物招领系统 目录 基于springboot vue失物招领系统 一、前言 二、系统功能演示 详细视频演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue失物招领系统 一、前言 博主介绍…...
DataX实战:用querySql搞定多表关联同步,别再傻傻分表导入了
DataX高级实战:querySql在多表关联同步中的深度应用 引言 在数据集成领域,ETL工程师经常面临一个经典难题:如何高效处理多表关联的数据同步任务?传统做法往往需要先分表导出再关联处理,不仅效率低下,还增加…...
GitHub中文界面插件:3步解锁你的中文GitHub工作台
GitHub中文界面插件:3步解锁你的中文GitHub工作台 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 你是否曾经在GitHub上搜…...
