强排序(位置变值)
2020100XWH
这个作者很懒,什么都没留下…
展开
-
区间排序(
[Tjoi2016&Heoi2016]排序 - 题目 - 黑暗爆炸OJ对一个排列进行m次区间内排序操作,给定值q,求位置q上的树算法:1.首先由于排列所以值域确定(非排列可以采取离散化处理)对值域二分2.将大于m设为1,其余设为0,得到01序列,对每次(细节)check建立一颗线段树由区间求和可确定区间内的1的个数,从而完成区间内升序降序排列(01序列特性,总和+排序可确定整个序列,求和线段树可以完成,排序为题设要求)3.为1二分左端点右移(无m) 为0右端点左...原创 2022-02-28 15:12:10 · 561 阅读 · 0 评论 -
跨距排序)借(最优)中间量完成交换
a和最远的边界一定可以交换,同理b,然后交换两个边界,再分别换回,完成排序交换的动作;用一个数组从坐标映射到值,另一个从值映射到数组,对n枚举,每次把i放到i的位置上,每次放好的位置已定 不会再动,所以一遍遍历即可(不是以位置枚举,是以值到位)#include<bits/stdc++.h>using namespace std;const int maxn=3e5+5;int p[maxn];int c[maxn];int ans=0;int cnt=0;int n.原创 2021-09-18 18:11:00 · 69 阅读 · 0 评论 -
强排序问题
大意为每个单位在不同位置有不同值(在关于位置的一个函数)此时只有把每个单位调到最合适的位置才能实现最小,因此为强排列这里强排列的方法是两两调换(若出现更优情况进行调换)而其余情况为相对当前较优应当保持而发现的不优单位当前的位置也不是一定是最优,所以要先对他进行调优再调整原单位直至不再出现更优调整下个(前面操作若将优者放好后续也无须再调)因为单个调整完不一定是全局最优 所以当在后面发现前者不够优还要调整 直至最后结束递归使全局最优 而单个的影响不一定是全局的所以要遍历递归直至结束这里的暴...原创 2021-07-31 21:08:54 · 168 阅读 · 0 评论