提交记录 13392


用户 题目 状态 得分 用时 内存 语言 代码长度
w33z8kqrqk8zzzx33 1001. 测测你的排序 Accepted 100 848.89 ms 781272 KB C++ 833 B
提交时间 评测时间
2020-08-01 17:52:25 2020-08-01 17:52:30
#include <cstring>

typedef unsigned int u32;
u32 oc[256];

    void sort(u32 *inp, u32 *tmp, int n) {
#define half(a,b,k) \
memset(oc, 0, sizeof oc); \
for(int i=n; i; i-=8) { \
    oc[a[i-1]k]++;oc[a[i-2]k]++; \
    oc[a[i-3]k]++;oc[a[i-4]k]++; \
    oc[a[i-5]k]++;oc[a[i-6]k]++; \
    oc[a[i-7]k]++;oc[a[i-8]k]++; \
} \
for(int i=1; i<256; i++) oc[i] += oc[i-1]; \
for(int i=n; i; i-=8) { \
    b[--oc[a[i-1]k]]=a[i-1];b[--oc[a[i-2]k]]=a[i-2];\
    b[--oc[a[i-3]k]]=a[i-3];b[--oc[a[i-4]k]]=a[i-4];\
    b[--oc[a[i-5]k]]=a[i-5];b[--oc[a[i-6]k]]=a[i-6];\
    b[--oc[a[i-7]k]]=a[i-7];b[--oc[a[i-8]k]]=a[i-8];\
}
        half(inp, tmp, &255);
        half(tmp, inp, >>8&255);
        half(inp, tmp, >>16&255);
        half(tmp, inp, >>24);
#undef half
    }

void sort(unsigned *a, int n) {
u32 *tmp = new u32[n];
	sort(a, tmp, n);
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #1848.89 ms762 MB + 984 KBAcceptedScore: 100


Judge Duck Online | 评测鸭在线
Server Time: 2024-11-24 00:15:48 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠