Solution
注意到若 ,则 。我们将除以四后结果相同的元素分到同一组。显然,若 , 可交换,, 可交换,则 , 可交换。所以同一组内的所有元素可相互交换,即每一组均可内部排序。
将每一组排好序后,倒序枚举原数组,将每个元素替换成所在组内的最后一个元素,并将其从组内弹出。替换完成的新数组即为答案。
有 n 个 bool 变量,有m个条件,如 ⌊xi 为 true/flase 或 xj 为 true/false ⌋。求是否有方案能满足所有条件。构造出一组符合题意的解。
按照条件建立分层图,令 xi 为 true,xi+n 为 false。
本文包括埃氏筛和线性筛。
用 map 对数组离散化,防止撑爆树状数组。
从左到右扫一遍数组。i−1 表示左边有 i 个数。显然左边的数与 ai 构成逆序对的数量为 i−1 减左边比 ai 小的数的数量。
记得去重。