Dog67_Heaker
2022-08-06 18:18
采纳率: 0%
浏览 36
问题最晚将于08月14日00:00点结题

计算逆序对问题 OJ OJ运行超时:Time Limit Exceeded

问题遇到的现象

OJ运行超时: Time Limit Exceeded

条件

内存限制:64 MiB
时间限制:1000 ms
标准输入输出
题目类型:传统
评测方式:文本比较

题目

题目描述
设A[1..n]是一个包含N个数的数组。如果在i〈 j的情况下,有A[i] 〉a[j],则(i,j)就称为A中的一个逆序对。
使用 归并排序 可以用O(nlogn)的时间解决统计逆序对个数的问题 。
输入格式
第1行:1个整数N表示排序元素的个数。(1≤N≤100000) 第2行:N个用空格分开的整数,每个数在小于100000
输出格式
1行:仅一个数,即序列中包含的逆序对的个数
样例
样例输入
3
1 3 2
样例输出
1

问题相关代码,请勿粘贴截图
#include <iostream>
using namespace std;
int main()
{
    long long NUM,l = 0,O,P = 0;
    cin >> O;
    int num[O];
    for(int i = 0;i < O;i++)
    {
        cin >> NUM;
        num[i] = NUM;
        for(int v = i - 1;v > -1;v--)
        {
            if(num[i] < num[v])
                P++;
        }
    }
    cout << P;
}

```

运行结果及报错内容

报错0:Exited with return code 0
结果正常
运行超过OJ时间限制

我的解答思路和尝试过的方法

1)定义数组存储集合
2)比对集合中符合条件元素的大小
3)输出

我想要达到的结果

OJ Accept

3条回答 默认 最新

相关推荐 更多相似问题