首页 > 其他分享 >整体二分 学习笔记

整体二分 学习笔记

时间:2023-07-16 10:45:40浏览次数:34  
标签:二分 text mid 笔记 学习 lt vector 答案 ask

对多个答案同时二分。

每次将答案在 \([l, r)\) 中的询问按答案与 \(\text{mid}\) 的关系丢进两个 \([l, \text{mid})\) 和 \([\text{mid}, r)\) 的 std::vector 里,递归求解即可。

递归终止的条件:可能的答案区间长度为 \(1\),此时答案唯一确定。

例题:带修区间 \(k\) 小

将修改和询问都打包成 struct op,塞进 vector 里,每次处理 \([l, r)\) 的操作。具体地,猜测 \(\text{mid}\) 为答案,每次遇到修改时如果此数 \(\lt \text{mid}\) 则将其视为 \(1\),树状数组查区间和 \([\text{ask}.l, \text{ask}.r) = \text{num}\) \(\lt \text{ask}.k\) 则说明 \([\text{ask}.l, \text{ask}.r)\) 中第 \(k\) 大值 \(\ge \text{mid}\),将此询问划分到右 vector 中,同时 \(k \leftarrow k-\text{num}\)(由于 \(\lt \text{mid}\) 的修改都被分走了)。左 vector 中的询问则不必。

对于修改,数状数组原数值若 \(\lt \text{mid}\) 则 \(-1\)(撤销原操作),新数值正常处理。

标签:二分,text,mid,笔记,学习,lt,vector,答案,ask
From: https://www.cnblogs.com/x383494/p/17557548.html

相关文章

  • spring完整笔记
    第一章初识Spring1.1Spring简介Spring是一个为简化企业级开发而生的开源框架。Spring是一个IOC(DI)和AOP容器框架。IOC全称:InversionOfControl【控制反转】将对象控制权由程序员自己反转交个SpringDI全称:DependencyInjection【依赖注入】Spring管理对象与对......
  • #Deeplearning#人工智能导论学习笔记
    神经网络基础线性函数(得分函数)计算每个类别的得分:每个像素点都会影响结果(像素点的权重参数)f(image,parameters)每个像素点都需要有一个权重,每个像素点会按RGB拆分成三个矩阵中的元素单行矩阵(每个像素点的权重)x像素点(所有像素点)=1x1矩阵(得分)f(x,W)=Wx+b简而言之,就是每......
  • 《架构整洁之道》学习笔记 Part 2 编程范式
    计算机编程发展至今,一共只有三个编程范式:结构化编程面向对象编程函数式编程编程范式和软件架构的关系结构化编程是各个模块的算法实现基础多态(面向对象编程)是跨越架构边界的手段函数式编程是规范和限制数据存放位置与访问权限的手段软件架构的三大关注重点:功能性、组......
  • 【学习笔记】山东省队第三轮集训
    Day2A.sequence题目描述:题目分析:考虑一个很简单的\(dp\)就是设\(f[i]\)表示考虑了前\(i\)个位置最多可以划分为多少个序列。转移就是可以直接从\(f[i-1]\)继承,或者从\(j\)满足\(\sum_{k=j+1}^{i}c_i=0\),也就是前缀和相等。可以发现的是对于从\(j\)转移这种......
  • tarjan 学习笔记
    tarjan学习笔记求解强联通分量我们从一个点开始建立dfs树,有如下四种边:树边若\(u\)到\(v\)有边,且满足\(v\)没有被访问过,则这条边为树边返祖边若\(u\)到\(v\)有边,且满足\(v\)已被访问过,则这条边为返祖边横叉边若\(u\)到\(v\)有边,且满足\(u\)和......
  • 强化学习:基于蒙特卡洛树和策略价值网络的深度强化学习五子棋(含码源)
    强化学习:基于蒙特卡洛树和策略价值网络的深度强化学习五子棋(含码源)特点自我对弈详细注释流程简单代码结构net:策略价值网络实现mcts:蒙特卡洛树实现server:前端界面代码legacy:废弃代码docs:其他文件utils:工具代码network.py:移植过来的网络结构代码model_5400.p......
  • LeetCode 658. Find K Closest Elements 二分+双指针
    Givenasortedintegerarrayarr,twointegerskandx,returnthekclosestintegerstoxinthearray.Theresultshouldalsobesortedinascendingorder.Anintegeraisclosertoxthananintegerbif:|a-x|<|b-x|,or|a-x|==|b-x|an......
  • 如何学习 左耳朵耗子
    目录知识图谱注重基础,基础要打牢使用知识图谱知识来源系统的学习这个技术出现的背景、初衷和要达到什么样的目标或是要解决什么样的问题。这个技术的优势和劣势分别是什么,或者说,这个技术的trade-off是什么。这个技术适用的场景。技术的组成部分和关键点。技术的底层原理和关键实......
  • 《架构整洁之道》学习笔记 Part 1 概述
    本书主题介绍什么是优秀的软件架构,以提高软件架构质量介绍系统架构的各种属性与成本和生产力的关系,以采用好的设计和架构以便减少构建成本好的软件架构可以带来什么?大大节省软件项目构建与维护的人力成本每次变更:改动少,易于实施,不容易出bug用最小的成本,最大程度满足功能......
  • 二分查找法 的代码实现(JS版)
    递归版本:constBinarySearch=(function(){/***内部二分查找算法*@param{number[]}nums-有序数组*@param{number}l-左端点*@param{number}r-右端点*@param{number}target-目标数值*/constsearch=funct......