当前位置: 首页 > news >正文

CF2163D2-Diadrash (Hard Version)

CF2163D2-Diadrash (Hard Version)

题意:
交互题。在有 \(n(n\leq 10^4)\) 个元素的排列中给定 \(q(q\leq 3×10^5)\) 个区间,求这些区间中MEX值的最大。可以询问区间 \([l,r]\) 的MEX,不超过30次。

大部分交互题的本质在二分,这题的难点就在于转化出可以二分的条件。

容易得到,一个大区间\([L,R]\) 如果完全包含了一个小区间 \([l,r]\),那么 $MEX[L,R]\geq MEX[l,r] $。通过这个性质,小区间一定可以不用考虑。将小区间删去后,剩下最多 \(n\) 个区间。

接着考虑如何转化MEX:在一个排列中,\(MEX[l,r]\) 实际上就等于不在 \([l,r]\) 中的最小值,即:\(min(min[1,l-1],min[r+1,n])\)。而\(min[1,l-1]=MEX[l,n],min[r+1,n]=MEX[1,l]\)。所以可以得到:\(MEX[l,r]=min(MEX(l,n),MEX(1,r))\)。推出这个式子有什么用呢?

我们将区间按左端点排序,右端点一定也是递增的。从枚举的角度出发,随着 \(i\) 增大,\(l_i\)\(r_i\) 都在增大,因此 \(MEX(l,n)\) 在递减,\(MEX(1,r)\) 在递增,而这两者 \(min\) 值的最大一定在中间某点取到。

考虑二分:由于我们要求的是 \(min(MEX(l,n),MEX(1,r))\)。如果区间 \(i\)\(MEX(l_i,n)>MEX(1,r_i)\),将 \(i\) 右移。此时 \(MEX(l_i,n)\) 减小,\(MEX(1,r_i)\) 增大;反之则将 \(i\) 左移。在二分过程中实时更新最大值,得到的最大值即是答案。

#include <iostream>
#include <vector>
using namespace std;typedef pair<int,int> PII;int query(int l, int r)
{cout << "? " << l << " " << r << endl;int t;cin >> t;return t;
}void solve()
{int n,q;cin >> n >> q;vector<int> maxr(n+10,-1);for (int i = 1 ; i <= q ; i++){int l,r;cin >> l >> r;maxr[l] = max(maxr[l],r);}int now = 0;vector<PII> p;for (int i = 1 ; i <= n ; i++){if (maxr[i] > now){now = maxr[i];p.push_back({i,now});}}int l = -1;int r = p.size();int ans = 0;while (l+1 != r){int mid = (l+r) >> 1;int L = p[mid].first;int R = p[mid].second;int a = query(1,R);int b = query(L,n);ans = max(ans,min(a,b));if (a > b) r = mid;else l = mid;}cout << "! " << ans << endl;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T;cin >> T;while (T--) solve();return 0;
}
http://www.jsqmd.com/news/188291/

相关文章:

  • 基于SVG的双馈风机并网模型实验与仿真
  • 私有化部署价值凸显:HunyuanOCR满足企业数据不出域需求
  • 导师严选2025 AI论文平台TOP9:专科生毕业论文必备测评
  • Matlab代码:微电网的优化调度,利用Yalmip/Cplex求解器求解,程序注释详细,带说明文档
  • 词典约束是否存在?测试HunyuanOCR对专业术语的识别能力
  • 现在每天下午六点,我准时关了 IDEA,开车穿过 4 公里的晚高峰,20 分钟就到小区。一、去年那个手忙脚乱的夏天,我差点错过儿子的成长去年 5 月 23 号,老婆生了,是个儿子,我在产房陪产,当1
  • 如何定制HunyuanOCR的识别字段?自定义模板配置方法介绍
  • BioMedical文献扫描:HunyuanOCR处理专业术语的表现
  • 现在1每天下午六点,我准时关了 IDEA,开车穿过 4 公里的晚高峰,20 分钟就到小区。一、去年那个手忙脚乱的夏天,我差点错过儿子的成长去年 5 月 23 号,老婆生了,是个儿子,我在产房陪产1
  • VRTraining虚拟培训:操作手册文字嵌入三维场景
  • ACPI!ACPIBuildDeviceRequest函数分析和ACPI!ACPIBuildDeviceDpc函数的关系
  • 沃尔玛购物卡回收平台哪家强?实测后推荐这三家 - 京顺回收
  • Bootstrap的CSS样式使用介绍
  • 使用Jupyter Notebook运行1-界面推理-pt.sh脚本启动HunyuanOCR服务
  • HunyuanOCR与EasyOCR性能对比:速度、精度、资源占用三维评估
  • 脉脉AI创作者活动:聊聊AI时代技术人的真实出路
  • 数据增强策略复现:HunyuanOCR训练集构造方法猜想
  • NewsArticle新闻网页抓取:从截图还原正文内容的流程
  • EnvironmentalMonitoring环境监测:公示牌数据定期抓取
  • HunyuanOCR网页推理操作手册:从Jupyter启动到7860端口访问全流程
  • CF1746F - Kazaee
  • 基于web的电影院购票系统毕业论文+PPT(附源代码+演示视频)
  • FUNSD表单理解测试:HunyuanOCR对非结构化输入的解析力
  • 2025年行业内技术好的包装袋实力厂家推荐排行榜单,三边封包装袋/八边封包装袋/四边封包装袋制造厂家推荐 - 品牌推荐师
  • WebGPU标准支持路线图:浏览器端原生运行HunyuanOCR愿景
  • Memcached容错处理机制揭秘:面试必看!
  • padding、border会把div撑大的解决方法
  • MMOCR框架集成尝试:将HunyuanOCR作为检测识别模块
  • Memcached批量导入导出秘籍:掌握高效技巧
  • 有关线性基(1)