提交记录 13392
提交时间 |
评测时间 |
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);
}
Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
Testcase #1 | 848.89 ms | 762 MB + 984 KB | Accepted | Score: 100 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2024-11-24 00:15:48 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠