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

CF2106E Wolf 题解

手玩样例发现,如果查询的数\(k\)在区间外,那么结果一定是\(-1\)

我们设数字\(k\)在数组中的下标为\(idx_k\)
如果在区间里面呢,我们由题意可以知道,题中的二分方式是按照数列单调递增的特性进行二分的,那么我们肯定需要让二分找到\(k\)的路径上的所有的点的值与\(k\)的关系都是满足单调性的,即如果\(i<idx_k\),那么有\(p_i<k\),这样我们可以通过二分找到。

这个二分的路径是唯一的,因为如果不唯一那就说明我们在某一处选择另一半的区间进行二分,但是这个区间显然是不会包含\(k\)的,所以说路径一定是唯一的。那么我们就可以通过模拟二分,然后找出二分的路径,如果路径内部可以自我消化满足二分的条件,即所有形如\(i<idx_k,p_i>k\)\(i>idx_k,p_i<k\)的数可以通过重新排列满足条件,那么就可以。否则,我们需要额外的选择路径之外的数参与交换。

代码

#include <bits/stdc++.h>
using namespace std;
/**/
void sol() {int n,q;cin>>n>>q;vector<int> p(n+1,0),idx(n+1,0);for(int i=1;i<=n;i++){cin>>p[i];idx[p[i]]=i;}while(q--){int lt,rt,k;cin>>lt>>rt>>k;if(idx[k]<lt||idx[k]>rt) cout<<"-1 ";else{int low=0,high=0,numlow,numhigh;numlow=numhigh=0;int remlow=k-1,remhigh=n-k;int l=lt,r=rt,mid;while(l<=r){mid=(l+r)>>1;if(p[mid]==k) break; else if(mid<idx[k]){l=mid+1;if(p[mid]>k){low++;numhigh++;}else remlow--;}else{r=mid-1;if(p[mid]<k){high++;numlow++;}else remhigh--;}}if(low>remlow||high>remhigh) cout<<"-1 ";else{int extra=0;extra+=max(low-numlow,0);extra+=max(high-numhigh,0);cout<<low+high+extra<<" ";}}}cout<<'\n';
}int main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int t = 1;cin >> t;while (t--) {sol();}return 0;
}

总结:二分查找一个数时的路径是唯一的。

http://www.jsqmd.com/news/438041/

相关文章:

  • zerofs 支持wal 存储到独立地方
  • springboot+vue高校学生评教系统
  • 上海捷勃特机器人|智能制造工时管理的 “效率革命” - 搭贝
  • 2026年家居建装设计潮流去哪个展会看最好?五大顶级展会全景指南助你抢占先机 - 匠言榜单
  • 不同规模医院成本核算管理系统应用实践与厂商适配 - 业财科技
  • 大模型对齐的Benchmark准吗?看看腾讯混元的RubricBench
  • PiliPlus 2.0.0.1 | 基于Flutter开发的第三方哔哩,目前最好用的一款
  • HDx播放器1.0.197 | 支持多种格式和4K/8K高清视频播放,内置推特~脸书下载器
  • 省选集训 40 - 容斥原理
  • 《PicoServer 跨平台轻量级 Web Admin 实战系列》总序
  • 解决 IntelliJ IDEA 中 Tomcat 日志乱码问题的详细指南
  • 平衡kube-apiserver流量
  • 一会就得回学校
  • 第9章 丰富你的程序,运用手机多媒体
  • 2026桔多多借贷靠谱吗?从合规服务看用户体验 - 品牌排行榜
  • 第10章 后台默默的劳动者,探究Service
  • 桔多多是干嘛的?为23-50岁用户提供消费服务平台 - 品牌排行榜
  • 桔多多逾期怎么还款?2026年实用还款流程指引 - 品牌排行榜
  • 【信息科学与工程学】【管理科学】第二十五篇 企业高管运作模型框架02
  • 莫名奇妙的nginx请求偶发400
  • Android 多进程开发 - 服务端死亡回调、服务端与客户端的线程环境、oneway 关键字
  • 手把手教你本地部署ChatGLM-6B大模型,告别环境配置烦恼!保姆级教程速看!
  • 意义哲学与空
  • Vue - Vue2 与 Vue3 自定义插件
  • Qwen3.5重磅登场!阿里开源“原生多模态”AI核弹,能否引爆2026技术革命?
  • Win系统下Ollama大模型安装与Chatbox部署全攻略,手把手教你玩转AI!
  • 一台电脑控制N台手机实现投屏群控操作,搭建引流工作室必备技能
  • 2026桔多多平台怎么样?服务体验与使用指南详解 - 品牌排行榜
  • PicoServer 跨平台 Web 架构实战系列 (一) MAUI 中嵌入 PicoServer 入门
  • 2026马赛克瓷砖品牌排行有哪些?实力品牌推荐 - 品牌排行榜