提交记录 9374


用户 题目 状态 得分 用时 内存 语言 代码长度
Crossing 1001. 测测你的排序 Compile Error 0 0 ns 0 KB C++11 837 B
提交时间 评测时间
2019-05-05 10:37:57 2020-08-01 01:37:02

#include <bits/stdc++.h>

const int N = 3e7 + 7, maxv = 1 << 8;
 
unsigned int c1[maxv], c2[maxv], c3[maxv], c4[maxv], x[N], y[N];
​
void sort(unsigned int *a, int n) {
    for (int i = 0; i < n; i++) {
        c1[a[i] & (maxv - 1)]++;
        c2[(a[i] >> 8) & (maxv - 1)]++;
        c3[(a[i] >> 16) & (maxv - 1)]++;
        c4[a[i] >> 24]++;
    }
    for (int i = 1; i < maxv; i++) c1[i] += c1[i - 1], c2[i] += c2[i - 1], c3[i] += c3[i - 1], c4[i] += c4[i - 1];
    for (int i = n - 1; i >= 0; i--) x[c1[a[i] & (maxv - 1)]--] = i;
    for (int i = n - 1; i >= 0; i--) y[c2[(a[x[i]] >> 8) & (maxv - 1)]--] = x[i];
    for (int i = n - 1; i >= 0; i--) x[c3[(a[y[i]] >> 16) & (maxv - 1)]--] = y[i];
    for (int i = n - 1; i >= 0; i--) y[c4[a[x[i]] >> 24]--] = x[i];
    for (int i = 0; i < n; i++) x[i] = a[y[i]];
    std::swap(a, x);
}

CompilationN/AN/ACompile ErrorScore: N/A


Judge Duck Online | 评测鸭在线
Server Time: 2026-04-04 09:57:43 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠