[构造] aw3672. 数组重排(构造+推公式+思维)

Posted Ypuyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[构造] aw3672. 数组重排(构造+推公式+思维)相关的知识,希望对你有一定的参考价值。

1. 题目来源

链接:3672. 数组重排

2. 题目解析

有公式的题目,先推公式,对公式做变型。

题目初始要求 i-a[i] != j-a[j],等价于 i-j != a[i]-a[j],由于 i < j,则 i-j<0,当 a[i]-a[j]>=0 时,式子永远成立。

显然,应该从大到小排序即可。


时间复杂度: O ( n l o g n ) O(nlogn) O(nlogn)

空间复杂度: O ( n ) O(n) O(n)


#include <bits/stdc++.h>

using namespace std;

const int N = 105;

int n;
int a[N];

int main() {
    int T;
    scanf("%d", &T);
    
    while (T -- ) {
        scanf("%d", &n);
        for (int i = 1; i <= n; i ++ ) scanf("%d", a + i);
    
        sort(a + 1, a + 1 + n, greater<int>());
    
        for (int i = 1; i <= n; i ++ ) printf("%d ", a[i]);
        
        puts("");
    }
    
    return 0;
}

以上是关于[构造] aw3672. 数组重排(构造+推公式+思维)的主要内容,如果未能解决你的问题,请参考以下文章

2021夏季每日一题 week6 完结

[构造] aw3730. 寻找序列(模拟+构造)

[数学-构造矩阵]NEFU 1113

[单调栈] aw3780. 构造数组(递推+单调栈+枚举+aw周赛009_3)

[环图] aw3775. 数组补全(思维+构造+CF1283C)

[构造] aw3731. 序列凑零(模拟+构造)