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 ...
随机推荐
- Kagol:2022年最值得推荐的前端开源文章
大家好,我是 Kagol,Vue DevUI 作者,从2020年开始一直专注于前端开源组件库的建设,在前端开源组件库.开源社区运营方面积累了一些经验,2020年主要的创作也是围绕前端组件库和开源两个主 ...
- 8、ThreadPoolTaskExecutor线程并发
一.线程池的优点: 1.降低资源消耗.通过重复利用自己创建的线程降低线程创建和销毁造成的消耗. 2.提高响应速度.当任务到达时,任务可以不需要等到线程创建就能立即执行. 3.提高线程的可管理性.线程是 ...
- 2022年7月9日 第四组 周鹏 HTML的初认识
<!DOCTYPE html> <html lang="en"> <!-- 文档的根标签 --> <head> & ...
- 外包公司中的"炼狱",极度摧残,避免踩坑。
引言 前些天羊了,一直没有更新.今天给大家聊聊两家外包公司,遇到的小伙伴避免踩坑. 咱不说那些虚的,什么尽量不要去外包公司,尽可能找甲方,这些谁都知道,肯定是因为一些原因(比如学历.项目经验.技术有待 ...
- 2020强网杯青少赛Pursuing_The_Wind战队WRITEUP
在线文档:https://docs.qq.com/doc/DZkN0RFFaR1ZDdHhD 旧事拾荒,偶遇该文档,既发. 战队信息 战队名称:Pursuing_The_Wind 战队排名:12 ...
- 自研ORM Include拆分查询(递归算法 支持无限层级) 性能优化探讨
最近我在优化 Include 拆分查询,贴出源码供大家交流探讨是否还有优化空间. 测试代码 1 Console.WriteLine($"总记录数:{db.Query<Category& ...
- Blazor WebAssembly的初次访问慢的优化
Blazor WebAssembly初次访问需要加载很多dll,体积较大,因此第一次加载比较慢. 针对此问题Microsoft提供了优化方案:压缩 https://learn.microsoft.co ...
- [LeetCode]螺旋矩阵
题目 代码 class Solution { public: vector<int> spiralOrder(vector<vector<int>>& ma ...
- BC3-牛牛学说话之-整数
题目描述 牛牛刚刚出生,嗷嗷待哺,一开始他只能学说简单的数字,你跟他说一个整数,他立刻就能学会.输入一个整数,输出这个整数. 输入描述 输入一个整数,范围在32位有符号整数范围内 输出描述 输出这个整 ...
- GitHubDesktop推送报错“SSL/TLS connection failed”如何解决
哈喽大家好,今儿提交Git的时候遇到个问题,查看了一会儿,算是解决了.这里记录一下,方便日后查看.和帮助到大家. 这篇博客后续会陆陆续续的更新内容,只要我遇到问题了,就会发上来. 报错内容: fata ...