首页 > 其他分享 >排序

排序

时间:2023-12-23 15:55:22浏览次数:29  
标签:二分 差分 序列 操作 排序 我们

本来我们最开始是想把序列的操作转化为单点操作的

想一下我们遇到过的序列转单点的方法:差分、前驱后继

所以这题本来想用差分的,但是排了序之后差分数组是无法确定的(可以手动模拟样例就知道为啥无法确定了)

然而这题目还给了我们一个提示:只需要知道最后时刻第\(q\)个位置上的数

所以我们可以考虑二分这个数是什么

那么怎么处理排序呢?

先来看看这道题

由于只关心相对大小,把比\(b\)大的变为\(1\),小的变为\(0\)就很好做了

再回到这道题目

普通排序不好搞,但是\(01\)排序是很好搞的,可以记住这个思想

于是我们按照类似的操作进行处理即可,具体见洛谷题解

为啥具有单调性?

我们不管每次二分的是啥,每次check的操作都是一样的,这就意味着我们最后得到的真实序列是唯一的,在第\(p\)个位置上的数也是一定的,我们二分了值mid,如果小于等于答案,那么我们得到的最终的\(01\)序列的第\(p\)个数一定是\(0\),反之一定是\(1\),就肯定具有单调性了

洛谷题解里面还有在线的操作,涉及线段树分裂与合并,有空学一下

标签:二分,差分,序列,操作,排序,我们
From: https://www.cnblogs.com/dingxingdi/p/17923212.html

相关文章

  • 【洛谷 P1781】宇宙总统 题解(高精度+结构体排序)
    宇宙总统题目描述地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。输入格式第一行为一个整数,代表竞选总统的人数。接下来有行,分别为第一个候选人到第个候选人的票数。输出格式共两行,第一行是......
  • 浅谈WPF之DataGrid过滤,分组,排序
    使用过Excel的用户都知道,Excel可以方便的对数据进行分组,过滤,排序等操作,而在WPF中,默认提供的DataGrid只有很简单的功能,那么如何才能让我们开发的DataGrid,也像Excel一样具备丰富的客户端操作呢?今天就以一个简单的小例子,简述如何在WPF中实现DataGrid的过滤,筛选,排序等功能。仅供学习分......
  • java8排序
    升序List<Transaction>transactions=Arrays.asList(newTransaction(brian,2011,300),newTransaction(raoul,2012,1000),newTransaction(raoul,2011,400),newTransaction(mario,2012,......
  • 任意多点按某一方向排序
    List<PointF>SortPoints(PointF[]points){List<PointF>result=newList<PointF>();PointFcenter=GetGravityPoint(points.ToList());PointFx=newPointF(center.X+1,center.Y);PointFOX=newPointF(1,......
  • java8实现分组、排序
    1、用户对象@Getter@Setter@AllArgsConstructorpublicclassUserTest{//名称privateStringuserName;//年龄privatestringage;//分数(这个无所谓啊)privatedoublescore;}2、准备数据List<UserTest>userList=newArrayList<>();......
  • pythoy排序不支持原生比较的对象
    问题你想排序类型相同的对象,但是他们不支持原生的比较操作。解决方案内置的sorted()函数有一个关键字参数key,可以传入一个callable对象给它,这个callable对象对每个传入的对象返回一个值,这个值会被sorted用来排序这些对象。比如,如果你在应用程序里面有一个User实例......
  • 【洛谷 P1093】[NOIP2007 普及组] 奖学金 题解(结构体排序)
    [NOIP2007普及组]奖学金题目描述某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前名学生发奖学金。期末,每个学生都有门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规......
  • 排序
    排序快排,归并排序之前已经熟悉不再赘述计数排序复杂度O(n+m)计数排序适于值域范围较小的数字排序,核心思想:每个数字出现几次统计完每个元素出现次数后,求一边前缀和,就知道了每个数字排完序后的序列中出席拿的为止的范围(第几小到第几小都是这个数字)把数字填入相应为止保......
  • java Page 实现根据字段名排序
    /***排序JSON格式*/@ApiModelProperty(value="排序JSON格式")privateStringorderBy;  @GetMapping("/page_manage")@ApiModelProperty(value="管理端用户管理分页",notes="管理端用户管理分页")publicRpageManage(Page<SysUser>page,......
  • 排序算法详解 C# 版
    概述一般使用的八大排序算法是:插入排序、选择排序、冒泡排序、希尔排序、归并排序、快速排序、堆排序、基数排序,每个方法有其适合的使用场景,可以根据具体数据进行选择.冒泡排序//冒泡排序,比较相临两个数的大小,如lst[i]>lst[i+1],则互换位置staticint[]Bu......