HDU3194 Median【中位数+排序】

问题链接HDU3194 Median

问题简述:参见上述链接。

问题分析这是一个计算中位数问题。

程序说明:程序提交后出现TLE问题,按照一般的计算是会出问题的,需要找规律才行,希望有人帮助解决。

题记(略)


TLE的C++语言程序如下:

/* HDU3194 Median */

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

const int N = 1000000;
int x[N];

int main()
{
    int n, a, x0, b, m;

    while(scanf("%d%d%d%d%d", &n, &a, &x0, &b, &m) != EOF) {
        x[0] = x0;
        for(int i=1; i<n; i++)
            x[i] = (x[i - 1] * a + b) % m;

        sort(x, x + n);

        int median;
        if(n % 2 == 1)
            median = x[n / 2];
        else
            median = (x[n / 2 - 1] + x[n / 2]) / 2;

        printf("%d\n", median);
    }

    return 0;
}



posted on 2017-05-24 20:12  海岛Blog  阅读(99)  评论(0编辑  收藏  举报

导航