提交记录 27910


用户 题目 状态 得分 用时 内存 语言 代码长度
LEFt 1001c. 测测你的排序4 Accepted 100 2.86 s 1048848 KB C++ 649 B
提交时间 评测时间
2025-02-12 11:50:02 2025-02-12 11:50:10
#include <array>
#include <vector>

void sort(unsigned *a, int n) {
    std::array<int, 65536> cnt{}; // 修正为 65536
    std::vector<unsigned> aa(n);  // 替换 VLA 为 vector

    // 低16位排序
    for (int i = 0; i < n; i++) 
        cnt[a[i] & 0xFFFF]++;
    for (int i = 1; i < 65536; i++) // 修正循环条件
        cnt[i] += cnt[i - 1];
    for (int i = n - 1; i >= 0; i--) 
        aa[--cnt[a[i] & 0xFFFF]] = a[i];

    cnt.fill(0);

    // 高16位排序
    for (int i = 0; i < n; i++) 
        cnt[aa[i] >> 16]++;
    for (int i = 1; i < 65536; i++) // 修正循环条件
        cnt[i] += cnt[i - 1];
    for (int i = n - 1; i >= 0; i--) 
        a[--cnt[aa[i] >> 16]] = aa[i];
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #12.86 s1024 MB + 272 KBAcceptedScore: 100


Judge Duck Online | 评测鸭在线
Server Time: 2025-04-05 05:20:12 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠