CF1764G1 题解
题意
交互库有一个 \([1,n]\) 的排列 \(p\),你可以询问 \(l,r,k\),交互库会返回 \(\lfloor\dfrac{p_l}{k}\rfloor,\lfloor\dfrac{p_{l+1}}{k}\rfloor,\dots,\lfloor\dfrac{p_r}{k}\rfloor\) 中不同数的个数。你需要在 \(30\) 次询问内找到 \(p\) 中 \(1\) 的位置。
\(n\in[3,1024]\)。
题解
好交互题!
我们发现很难从询问中得出信息,于是观察一些特殊的 \(k\)。当 \(k\) 为 \(n\) 时,若区间包含 \(n\) 则为 \(2\),否则为 \(1\)。于是可以二分出 \(n\)。
但这种方式难以推广到其他 \(k\)。想一下 \(n\) 的特殊之处:其除 \(n\) 取下整的值唯一。而 \(1\) 除 \(2\) 取下整的值也唯一。
于是对于 \(i\in[1,n]\),考虑 \(Q(1,i,2)-Q(1,i-1,2)\) 与 \(Q(i,n,2)-Q(i+1,n,2)\)。不难发现若 \(p_i=1\),二者均为 \(1\);否则必然一者为 \(1\),一者为 \(0\)。
上面是差分形式,前缀和即为 \(Q\)。于是可以二分,每次查询前缀和,找到第一个二者均为 \(1\) 的位置。这里需要 \(2\log n\) 次。
注意到上面的分析忽略了 \(n\) 为偶数的情形,此时 \(n\) 的位置二者也均为 \(1\)。上面我们提到了 \(\log n\) 找 \(n\) 的方法,于是将 \(n\) 的贡献处理掉即可。总查询次数 \(3\log n\)。
CF1764G1 题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
- JSOI2016R3 瞎BB题解
题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...
随机推荐
- 注意看,她叫小美,在地址栏输入URL地址后发生了什么?
注意看,这个用户叫小美,他在地址栏输入了一串URL地址,然后竟然发生了不可思议的事情! 01.输入URL发生了什么? 从输入URL开始,到页面呈现出来,简单来说分为四个步骤: ① 建立连接:建立与服务 ...
- 沁恒微(WCH)CH395/392配置使用,代码指南 网路接口芯片 CH395 CH392
CH395/CH392相关资料可以从官网下载具体连接可以看博客:WCH以太网相关芯片资料总结 里面是WCH官网相关信息的链接. 也可以去Gitee上下载:Gitee链接. STM32控制CH395的例 ...
- python之路40 前端之 CSS 标签查询
表单标签的补充说明 基于form表单发送数据 1.用于获取用户数据的标签至少应该含有name属性 name属性相当于字典的键 用户输入的数据会被保存到标签的value属性中 value属性相当于字典的 ...
- python之路34 MySQL 2 配置文件 字段类型
字符编码与配置文件 1.\s查看MySQL相关信息 当前用户.版本.编码.端口号 MySQL5.6及之前的版本编码需要人为统一 之后的版本已经全部默认统一 如果想要永久修改编码配置 需要操作配置文件 ...
- [cocos2d-x]捕鱼达人鱼和子弹的碰撞检测
检测方法如图所示,步骤在注释中也写的很清楚了.
- win32com操作word 第二集:Application&Documents接口
本课程<win32com操作word API精讲&项目实战>以视频为主,文字教程为辅,公众号ID:一灯编程. 先回答一个网友私信问题: win32com和微软的word接口文档有什 ...
- Ubuntu 22.04 运行 Appimage 文件
解决方法 sudo apt-get update sudo apt install fuse libfuse2 chmod a+x *.appimage 参考资料 https://bynss.com/ ...
- 从0到1手把手实现vite
什么是Vite? 法语:轻量化,快速 基于VUE3 非 打包开发服务器,请注意,它是个开发服务器哇!! 快速开发,按需编译,不再等待整个应用编译完成 基于原生模块系统ESModule实现 说白了,就是 ...
- 《深入理解Java虚拟机》第三章读书笔记(三)——经典垃圾回收器
系列文章目录和关于我 一丶概述 上图展示了 经典的垃圾回收器,其中Serial,ParNew,Parallel Scavenge(途中的Parallel) 作用在新生代Serial Old CMS,P ...
- .NET 团队 更新了 .NET 语言策略
2023年2月6日 ,.NET团队在官方博客上发布了.NET 语言策略的更新文章,具体参见 https://devblogs.microsoft.com/dotnet/update-to-the-do ...