1 条题解

  • 0
    @ 2026-1-28 15:25:42
    #include<iostream>
    using namespace std;
    
    // 全局数组:存储输入的数字,大小300满足n≤200的要求
    int arr[300];
    
    int main(){
        int n; // [1] 输入的数字个数
        cin >> n;
        
        // [2] 输入n个数字,存入数组
        for(int i = 0; i < n; i++) cin >> arr[i];
        
        int sum = 0; // [3] 存储逆序对总数(每个数后面比它小的数的总和)
        
        // [4] 遍历每个数字(除最后一个,因为后面没有数字)
        for(int i = 0; i < n - 1; i++){
            // [5] 遍历当前数字之后的所有数字
            for(int j = i + 1; j < n; j++){
                // [6] 如果当前数字大于后面的数字,逆序对计数+1
                if(arr[i] > arr[j]) sum++;
            }
        }
        
        // [7] 输出逆序对的总数
        cout << sum;
        return 0;
    }
    
    • 1

    信息

    ID
    1186
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    3
    已通过
    3
    上传者