首页 > 其他分享 >[AGC001F] Wide Swap 题解

[AGC001F] Wide Swap 题解

时间:2023-08-18 09:58:45浏览次数:51  
标签:Wide 归并 后缀 题解 AGC001F Swap

特别有意思的思维题。

思路

参考题解第一位的神仙思路。

将排列 \(a_i\) 变为 \(b_{a_i}\)。

限制便变为了只能交换相邻的两个差大于 \(k\) 的点。

那么这个限制就已经与普通排序很相似。

考虑使用归并排序。

一个点可以跑到其他点的前面要求这一连续段都是比它加 \(k\) 都不大。

在归并上体现为序列的一段后缀。

那么我们只要统计后缀最小值即可。

Code

AC记录

标签:Wide,归并,后缀,题解,AGC001F,Swap
From: https://www.cnblogs.com/Al-lA/p/17639587.html

相关文章

  • UVA1435 Business Cards 题解
    题目链接思路一道找规律思维题,代码非常简单。能否把\(c\timesd\)的矩阵分成若干个\(a\timesb\)的矩阵,其实就是问你\(a\)或\(b\)中有没有\(c\)或\(d\)的因数。只要存在一组,即可分割成题目所要求的矩阵,输出YES;反之,输出NO。注意:其实每个测试点都有多组数据,但题......
  • UVA10812 Beat the Spread! 题解
    题目链接思路大家应该都知道绝对值是什么吧?那么,我们不妨直接设\(a\gtb\),这样就省去了一次分类讨论的麻烦,大大降低了程序的复杂度。即可得到此二元一次含参方程组:\[\begin{cases} a+b=s\\ a-b=t\end{cases}\]运用二元一次方程的消元法,解得:\[\begin{cases} a=\frac{s+t}......
  • UVA10678 The Grazing Cow 题解
    题目链接思路一道简单模拟题。经过模拟,我们不难发现,牛的活动轨迹是一个椭圆。根据椭圆形面积公式得到\(S=\piab\)。其中,牛可以到的最左边或最右边时\(a=\frac{l}{2}\),距离中心最远时\(b=\frac{\sqrt{l^2-d^2}}{2}\)。注意有多组测试点,每次都应输出结果并换行。......
  • UVA11714 Blind Sorting 题解
    题目链接思路一道结论题,代码实现非常简单。把此题拆分成两个小问题。在最坏的情况下,需要几次询问,才能找出最大的数。在最坏的情况下,需要几次询问,才能找出次大数。对于找出最大的数,可以模拟二分查找来解决,每次将左边界右移或右边界左移,最终得到最大数。因此在最坏的情......
  • UVA10684 The jackpot 题解
    题目链接思路一道简单模拟题。用循环模拟每次的处理。对于每次输入的数\(N\),先判断\(N\)的值,如果为\(0\),直接结束程序,避免死循环。否则就依次输入每次赢或输的钱数,再进行集中判断,获取连胜获得的最多钱数,再判断是否连败,输出结果即可。参考代码(请勿抄袭):#include<bits/stdc+......
  • P1672 [USACO05FEB] Feed Accounting S 题解
    题目链接思路一道特别简单的差分模板题,其实也有点推理的感觉。对于每头牛,我们通过两次循环使用差分倒推出在这几天内它对我们饲料消耗的贡献,进而推出每一天的饲料消耗量,从\(D\)天到现在一共吃掉的饲料数为\(F1-F2\)的那一天即是我们所求的。输入的时候依照题意模拟一次差......
  • CF276C Little Girl and Maximum Sum 题解
    题目链接题目大意通过修改序列\(a\)中的数的顺序,使\[\sum_{i=1}^q\sum_{j=l}^ra[j]\]最大,并输出它的值。思路一道简单贪心\(+\)差分,通过差分的优秀的\(O(1)\)区间修改能力帮助我们求出每个位置在询问中询问的次数,进行排序,最后次数较多的就让值较大的数来,以此类推。AC......
  • CF1769B1 Копирование файлов I 题解
    题目链接题目大意从小到大输出满足\(\frac{100\timesx}{a_i}=\frac{100\times(\sum_{j=1}^{i-1}a_j+x)}{\suma_j}\)时它们的值。思路看到数据范围\(n\leq100\),考虑暴力枚举传输每一个字节时的情况,判断\(a\)和\(b\)的值是否相等即可。对于答案,我们使用set来储......
  • SP8591 PRIMPERM - Prime Permutations 题解
    题目链接题目大意给出\(1\)个数\(n\),求\(n\)的各位拆分后重新排列组合得到新数是质数的个数。思路(欧拉筛,全排列)对于求质数,与其每组数据运行\(1\)次质数筛,不如在一开始就筛出\([1,10^7]\)内的所有质数,用bool数组统计起来,这样只需运行\(1\)次质数筛,大大节约了时间......
  • P9518 queue 题解
    题目传送门思路一道稍稍有点复杂的模拟好题。本题的关键性就在于需要实现的leave函数必须支持任意位置的删除,任意元素的查询,这对于queue或是deque是十分不利的。故本题使用另外一种STL:list实现。但是,list的查询其实也是比较耗费时间的,那么我们可以使用\(Map\)来......