首页 > 其他分享 >2023 ICPC Seoul Regional A. Apricot Seeds(Pjudge【NOIP Round #7】冒泡排序)

2023 ICPC Seoul Regional A. Apricot Seeds(Pjudge【NOIP Round #7】冒泡排序)

时间:2024-10-21 08:48:19浏览次数:5  
标签:Pjudge Seoul 01126789 Regional 冒泡排序 01

题意

一个序列,Q 次询问一个区间 [l,r],进行 k 轮冒泡后,求子区间 [x,y] 的和。(N<=1e6,Q<=5e5)

冒泡定义为:

for i = 1 to n-1:
  if a[i] > a[i + 1]:
    swap(a[i], a[i + 1])

考场想法:

经典转 01。

11011100011100011111
 1011100011100011111+1
  011100011100011111+11
   01100011100011111+111
    0100011100011111+1111
     000011100011111+11111
      00001100011111+111111
       0000100011111+1111111
        000000011111+11111111
         00000001111+111111111
          0000000111+1111111111
           000000011+11111111111
            00000001+111111111111

考场上傻乎乎地考虑求后缀和然后差分,结果调不出来。

题解

被套路毁了!转牛魔 01!

19260817
 12608179
  12061789
   10216789
    01126789
     01126789
      01126789
       01126789

看前缀,其实就是 [l,l+x-1+k] 的前 x 小。可持久化权值线段树搞定。

标签:Pjudge,Seoul,01126789,Regional,冒泡排序,01
From: https://www.cnblogs.com/Zaunese/p/18488265

相关文章

  • 【洛谷 P1116】车厢重组 题解(模拟+冒泡排序)
    车厢重组题目描述在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他......
  • 【洛谷 P1116】车厢重组 题解(模拟+冒泡排序)
    车厢重组题目描述在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他......
  • 冒泡排序(Bubble Sort)
    新人博主,创作不易,希望得到各位看官的三连支持!!!1、原理        冒泡排序是一种简单的排序算法,属于交换排序的一种。它通过重复地遍历待排序的数列,比较相邻的元素,如果它们的顺序错误就将它们交换过来。这个过程会重复进行,直到没有需要交换的元素位置,即数列已经排序完......
  • 必学的排序算法——冒泡排序
    目录前言一、什么是冒泡排序二、冒泡排序的的基本步骤三、冒泡排序的特点四、冒泡排序算法图解五、经典例题1.合并两个有序数组代码题解2.元素计数代码题解3.最后一块石头的重量代码题解六、结语前言冒泡排序算法是必须掌握的一种基础算法,在一些比较出名的竞赛可......
  • Pjudge #21751. 【PR #8】养鸡
    题面传送门显然是一个类似流的问题。考虑一个\(O(n\logn)\)求单个\(i\)的过程:从右到左扫,对于每个\(i\)分配左端点最大的区间的流量。考虑直接维护这个过程,对于每个\(i\),分成\([i,n]\)和\([1,i)\)两部分,如果我们对于\([i,n]\)贪心完成了分配,那么\([1,i)\)的流量......
  • 冒泡排序 (Bubble Sort) 详解
    一、概述冒泡排序(BubbleSort)是一种基础的排序算法,属于交换排序的一种。它通过重复遍历要排序的数列,比较相邻的元素并交换它们的位置,逐步将最大的(或最小的)元素“冒泡”到数列的末端,从而完成排序。冒泡排序的工作原理非常直观易懂,尽管它的性能并不算最优,但作为入门级的排序算法,它能......
  • 冒泡排序、插入排序、选择排序、归并排序、快速排序算法(C++实现)
    文章目录一、冒泡排序上浮法冒泡排序(从小到大排序)下浮法冒泡排序(从大到小排序)二、选择排序三、插入排序四、归并排序五、快速排序参考一、冒泡排序冒泡排序应该算是最经典最简单的排序算法,我一开始学习排序算法就是从冒泡排序开始入门的。冒泡排序算法的基本思路:(......
  • C代码随笔——冒泡排序
    题目:对一串乱序数字排序并且进行重复元素去重冒泡排序的基本规则:        比较相邻的元素。如果第一个比第二个大(升序排序),就交换它们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。重复以上的步骤,除了最后已......
  • 5.3 C#数组的基本操作与排序(数组赋值、最大最小值、冒泡排序、选择排序、Array类排序)
    文章目录5.3.1C#数组对象的赋值例5-5:通过循环给一维数组赋值例5-6:通过键盘输入给数组赋值5.3.2C#数组对象的输出例5-7:不同类型数组的输出5.3.3C#求数组中的最大(小)元素值例5-8:求数组中的最大值和最小值5.3.4C#数组排序1.使用Array类排序(例5-9)2.冒泡排序(例5-......
  • Java 冒泡排序 (Bubble Sort) ✨ 代码版 + Emoji讲解
    冒泡排序的基本思想就是让“大泡泡”不断往上浮,直到整个数组像泡泡浴一样排序好!......