Luogu P14007 「florr IO Round 1」查询游戏 题解 [ 蓝 ] [ 交互 ]

news/2025/10/7 12:44:31/文章来源:https://www.cnblogs.com/zhr0102/p/19128367

查询游戏

原题做法是显然的,子段绝对值最大值可以转化为求出前缀和序列的最大值、最小值,然后两者作差即可。查询操作可以转化为询问前缀和序列中两个元素比大小。因为查询数 \(2n\),所以各扫一遍用擂台法求最大、最小值即可。

注意特判 Sub0 的 \(n = 1, 2\) 的情况:

  • \(n=1\),问前缀和序列中 \(P\)\(P_0, P_1\) 大小关系即可。
  • \(n=2\),问前缀和序列中 \(P\)\(P_0, P_1\)\(P_1, P_2\)\(P_0, P_2\) 大小关系即可。

考虑加强版,查询次数被限制在 \(\lfloor \dfrac{3n}{2}\rfloor\) 内的做法。有一个很实用的观察技巧:从小数据入手,通过小数据的情况覆盖大数据的情况

此题中 \(n = 1\) 时我们仅用 \(1\) 次比较就能分辨出他们的大小关系,所以对于原序列,我们将两个相邻的下标两两配对,像 \(n = 1\) 那样比较二者关系,把较大的放入 \(q1\) 中,小的放入 \(q2\) 中。其中 \(q1, q2\) 为两个队列。注意到 \(q1, q2\) 大小加起来只有 \(n\),所以直接打擂台扫过去,总查询次数为 \(\lfloor \dfrac{3n}{2}\rfloor\)

#include <bits/stdc++.h>
#define fi first
#define se second
#define eb(x) emplace_back(x)
#define pb(x) push_back(x)
#define lc(x) (tr[x].ls)
#define rc(x) (tr[x].rs)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ldb;
using pi = pair<int, int>;
int mxp = 0, mnp = 0, n;
bool res;
vector<int> mnv, mxv;
int main()
{cin >> n;if(n == 1){cout << "! 1 1" << endl;return 0;}if(n == 2){cout << "? 1 1" << endl;cin >> res;if(res == 1) mxp = 1;else mnp = 1;cout << "? " << mnp + 1 << " 2" << endl;cin >> res;if(res == 0) mnp = 2;cout << "? " << mxp + 1 << " 2" << endl;cin >> res;if(res == 1) mxp = 2;cout << "! " << min(mxp, mnp) + 1 << " " << max(mxp, mnp) << endl;return 0;}    for(int i = 1; i <= n; i += 2){cout << "? " << i << " " << i << endl;cin >> res;if(res == 0) mnv.push_back(i), mxv.push_back(i - 1);else mxv.push_back(i), mnv.push_back(i - 1);}if((n + 1) & 1) mxv.push_back(n), mnv.push_back(n);mnp = mnv[0], mxp = mxv[0];for(int i = 1; i < mnv.size(); i++){cout << "? " << mnp + 1 << " " << mnv[i] << endl;cin >> res;if(res == 0) mnp = mnv[i];}for(int i = 1; i < mxv.size(); i++){cout << "? " << mxp + 1 << " " << mxv[i] << endl;cin >> res;if(res == 1) mxp = mxv[i];}    cout << "! " << min(mxp, mnp) + 1 << " " << max(mxp, mnp) << endl;return 0;
}

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

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

相关文章

RK3588和FPGA桥片之间IO电平信号概率性不能通信原因 - 实践

RK3588和FPGA桥片之间IO电平信号概率性不能通信原因 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

稀缺计算资源如何塑造机器学习优化专家

本文讲述了机器学习专家如何在有限计算资源条件下发展优化技能,重点介绍了特征选择技术在高维空间中的应用,以及如何将这些技术应用于保护电商平台安全的实际场景中。稀缺计算资源如何塑造卡洛斯韦尔塔斯的职业生涯 …

医院建设网站意义电子商务网站首页设计

Project下要创建四个文件夹: bin(输出目录\工作目录) 、include(头文件目录) 、lib(动态库目录) 、src(源码目录) 一、主项目模块配置&#xff1a; 1.配置属性——>常规——>输出目录加入(..\..\bin\) 2.配置属性——>调试——>工作目录加入($(OutDir)) 备注&am…

优雅的合并GIT分支

优雅的合并GIT分支 目标 将dev​分支合并到main分支,并且不产生“合并提交”。具体操作确保本地 main 分支是最新的: bash git checkout main git pull origin main # 获取远程最新的main分支代码切换到 dev​ 分支…

实用指南:豆瓣图书评论数据分析与可视化

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

cpa广告联盟网站建设高端网站开发平台

文章目录 标准化与池化1. 标准化/归一化1.1 归一化归一化的作用 1.2 标准化批标准化方法 Batch Normailzation标准化方法的对比自动学习标准化方法 2. 池化2.1 池化的作用2.2 常见的池化方法2.3 池化方法的差异2.4 池化的必要性 标准化与池化 1. 标准化/归一化 1.1 归一化 归…

网站开发的核心技术上海装修公司招聘施工队长

概述 jQuery 是继 prototype 之后又一个优秀的 Javascript 框架。其宗旨是—写更少的代码,做更多的事情。它是轻量级的 js 库(压缩后只有21k) &#xff0c;这是其它的 js 库所不及的&#xff0c;它兼容 CSS3&#xff0c;还兼容各种浏览器&#xff08;IE 6.0, FF 1.5, Safari 2.…

网站怎么做电脑系统下载wordpress文章表情插件

每个进程都有三个标准文件描述符&#xff1a;stdin&#xff08;标准输入&#xff09;、stdout&#xff08;标准输出&#xff09;和stderr&#xff08;标准错误&#xff09;。默认情况下&#xff0c;stderr会输出到终端。使用2>可以将stderr重定向到其他地方&#xff0c;比如…

广州市番禺区官网seo站群干什么的

题目 题目链接 分析 这道题目一定要多读几遍&#xff0c;才能理解。 大意就是你有钱budget 和 库存stock的金属零件&#xff0c;让你从一堆机器里面选择一种机器可以合成最多金属的数量是多少&#xff0c;这些机器合成金属需要的零件数目是不一样的&#xff0c;composition…

网站手机客户端在线制作北京知名网站

本文节介绍 PP-TSM 模型如何转化为 ONNX 模型&#xff0c;并基于 ONNX 引擎预测。 1&#xff1a;环境准备 安装 Paddle2ONNX python -m pip install paddle2onnx 安装 ONNXRuntime # 建议安装 1.9.0 版本&#xff0c;可根据环境更换版本号 python -m pip install onnxrunti…

完整教程:Excel to JSON 插件 2.4.0 版本更新

完整教程:Excel to JSON 插件 2.4.0 版本更新pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

Ai元人文:人文逻辑与规则逻辑的统一

Ai元人文:人文逻辑与规则逻辑的统一 让我们从 “人文逻辑与规则逻辑统一” 这一核心视角,对AI元人文构想进行一场深度的剖析与整合。 这不仅是技术的融合,更是一场认识论上的革命。 图片 核心理念:逻辑的统一而非对…

北仑网站制作线上推广渠道和方式

错误二&#xff1a;[ERR] 1227 - Access denied; you need (at least one of) the SUPER privilege… 觖决办法 用文本工具打开sql文件 查找&#xff1a; DEFINER fit_root% 把fit_root%账号改成你实际导入的那台服务器mysql账号保存即可

佛山市城乡住房建设局网站首页公众号可以开视频号?

背景 近期工作中要解决两个问题&#xff0c;一个是数据组需要网爬一些图片数据&#xff0c;另外一个是要批量爬取公司用于文档协同的一个网站上的附件。于是乎&#xff0c;就写了两个脚本去完成任务。 爬虫思路 第一步&#xff1a;向确定的url发送请求&#xff0c;接收服务器…

《二千年间》在线阅读

《二千年间》,作者:胡绳:https://www.dushu.com/guoxue/106674/

实用指南:Java 单例模式详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

oppoR9m刷Linux系统: 安装MTK USB VCOM驱动

前言全局说明安装MTK USB 驱动注意:刷机,会丢失用户:照片、聊天等信息资料。请备份基带等信息。请慎重刷机 !!! 注意:刷机,会丢失用户:照片、聊天等信息资料。请备份基带等信息。请慎重刷机 !!! 注意:刷机,会丢…

建设网站费用计入什么科目山东企业展厅设计公司

缓存技术在现代Web开发中至关重要&#xff0c;尤其是在高并发的环境中&#xff0c;缓存能够有效减少数据库访问压力、提高系统性能。Redis作为最流行的内存数据存储系统之一&#xff0c;常用于缓存管理。本节将讲解如何在Spring Boot项目中集成Redis&#xff0c;实现缓存管理&a…

数据结构与算法学习笔记(Acwing 提高课)----动态规划树形DP - 详解

数据结构与算法学习笔记(Acwing 提高课)----动态规划树形DP - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &qu…