提交记录 15412


用户 题目 状态 得分 用时 内存 语言 代码长度
wawcac wc2017b1. 【WC2017】挑战-任务1 Accepted 100 2.225 s 1562528 KB C++ 1.25 KB
提交时间 评测时间
2020-12-27 01:28:54 2020-12-27 01:28:59
typedef unsigned int u32;
	u32 b[200000000],cnt0[256],cnt8[256],cnt16[256],cnt24[256];
	void sort(u32 *a,int n)
	{
		for(int i=0;i<n;++i){
			++cnt0[a[i]&255];
			++cnt8[a[i]>>8&255];
			++cnt16[a[i]>>16&255];
			++cnt24[a[i]>>24&255];
		}
		for(int i=1;i<=255;++i){
			cnt0[i]+=cnt0[i-1];
			cnt8[i]+=cnt8[i-1];
			cnt16[i]+=cnt16[i-1];
			cnt24[i]+=cnt24[i-1];
		}
#define countingSort(a,b,k) {\
	int tim=n>>3;\
	u32 *now=a+n-1-8;\
    while(tim--){\
        b[--cnt##k[now[8]>>k&255]]=now[8];\
        b[--cnt##k[now[7]>>k&255]]=now[7];\
        b[--cnt##k[now[6]>>k&255]]=now[6];\
        b[--cnt##k[now[5]>>k&255]]=now[5];\
        b[--cnt##k[now[4]>>k&255]]=now[4];\
        b[--cnt##k[now[3]>>k&255]]=now[3];\
        b[--cnt##k[now[2]>>k&255]]=now[2];\
        b[--cnt##k[now[1]>>k&255]]=now[1];\
		now-=8;\
    }\
    switch(n&7){\
        case 7:b[--cnt##k[a[6]>>k&255]]=a[6];\
        case 6:b[--cnt##k[a[5]>>k&255]]=a[5];\
        case 5:b[--cnt##k[a[4]>>k&255]]=a[4];\
        case 4:b[--cnt##k[a[3]>>k&255]]=a[3];\
        case 3:b[--cnt##k[a[2]>>k&255]]=a[2];\
        case 2:b[--cnt##k[a[1]>>k&255]]=a[1];\
        case 1:b[--cnt##k[a[0]>>k&255]]=a[0];\
    }\
}
		countingSort(a,b,0);
		countingSort(b,a,8);
		countingSort(a,b,16);
		countingSort(b,a,24);

	}

CompilationN/AN/ACompile OKScore: N/A

Testcase #11.019 ms812 KBAcceptedScore: 34

Testcase #21.113 s762 MB + 992 KBAcceptedScore: 33

Testcase #32.225 s1525 MB + 928 KBAcceptedScore: 33


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