提交记录 857


用户 题目 状态 得分 用时 内存 语言 代码长度
orbitingfIea 1001. 测测你的排序 Accepted 100 826.927 ms 781260 KB C 2.66 KB
提交时间 评测时间
2018-06-20 17:09:34 2020-07-31 20:43:45



unsigned b[100000000], cnt[256];

void songsongsong(unsigned *a,unsigned n){
	unsigned *A=a, *B=b, *T;
	{
		register unsigned i;
		for (i=0;i<256;++i) cnt[i]=0;
		for (i=0;i<n;i+=8){
			++cnt[A[i]&255];
			++cnt[A[i+1]&255];
			++cnt[A[i+2]&255];
			++cnt[A[i+3]&255];
			++cnt[A[i+4]&255];
			++cnt[A[i+5]&255];
			++cnt[A[i+6]&255];
			++cnt[A[i+7]&255];
		}
		for (i=1;i<256;++i) cnt[i]+=cnt[i-1];
		for (i=n-1;~i;i-=8){
			B[--cnt[A[i]&255]]=A[i];
			B[--cnt[A[i-1]&255]]=A[i-1];
			B[--cnt[A[i-2]&255]]=A[i-2];
			B[--cnt[A[i-3]&255]]=A[i-3];
			B[--cnt[A[i-4]&255]]=A[i-4];
			B[--cnt[A[i-5]&255]]=A[i-5];
			B[--cnt[A[i-6]&255]]=A[i-6];
			B[--cnt[A[i-7]&255]]=A[i-7];
		}
		T=A; A=B; B=T;
	}
	{
		register unsigned i;
		for (i=0;i<256;++i) cnt[i]=0;
		for (i=0;i<n;i+=8){
			++cnt[A[i]>>8&255];
			++cnt[A[i+1]>>8&255];
			++cnt[A[i+2]>>8&255];
			++cnt[A[i+3]>>8&255];
			++cnt[A[i+4]>>8&255];
			++cnt[A[i+5]>>8&255];
			++cnt[A[i+6]>>8&255];
			++cnt[A[i+7]>>8&255];
		}
		for (i=1;i<256;++i) cnt[i]+=cnt[i-1];
		for (i=n-1;~i;i-=8){
			B[--cnt[A[i]>>8&255]]=A[i];
			B[--cnt[A[i-1]>>8&255]]=A[i-1];
			B[--cnt[A[i-2]>>8&255]]=A[i-2];
			B[--cnt[A[i-3]>>8&255]]=A[i-3];
			B[--cnt[A[i-4]>>8&255]]=A[i-4];
			B[--cnt[A[i-5]>>8&255]]=A[i-5];
			B[--cnt[A[i-6]>>8&255]]=A[i-6];
			B[--cnt[A[i-7]>>8&255]]=A[i-7];
		}
		T=A; A=B; B=T;
	}
	{
		register unsigned i;
		for (i=0;i<256;++i) cnt[i]=0;
		for (i=0;i<n;i+=8){
			++cnt[A[i]>>16&255];
			++cnt[A[i+1]>>16&255];
			++cnt[A[i+2]>>16&255];
			++cnt[A[i+3]>>16&255];
			++cnt[A[i+4]>>16&255];
			++cnt[A[i+5]>>16&255];
			++cnt[A[i+6]>>16&255];
			++cnt[A[i+7]>>16&255];
		}
		for (i=1;i<256;++i) cnt[i]+=cnt[i-1];
		for (i=n-1;~i;i-=8){
			B[--cnt[A[i]>>16&255]]=A[i];
			B[--cnt[A[i-1]>>16&255]]=A[i-1];
			B[--cnt[A[i-2]>>16&255]]=A[i-2];
			B[--cnt[A[i-3]>>16&255]]=A[i-3];
			B[--cnt[A[i-4]>>16&255]]=A[i-4];
			B[--cnt[A[i-5]>>16&255]]=A[i-5];
			B[--cnt[A[i-6]>>16&255]]=A[i-6];
			B[--cnt[A[i-7]>>16&255]]=A[i-7];
		}
		T=A; A=B; B=T;
	}
	{
		register unsigned i;
		for (i=0;i<256;++i) cnt[i]=0;
		for (i=0;i<n;i+=8){
			++cnt[A[i]>>24&255];
			++cnt[A[i+1]>>24&255];
			++cnt[A[i+2]>>24&255];
			++cnt[A[i+3]>>24&255];
			++cnt[A[i+4]>>24&255];
			++cnt[A[i+5]>>24&255];
			++cnt[A[i+6]>>24&255];
			++cnt[A[i+7]>>24&255];
		}
		for (i=1;i<256;++i) cnt[i]+=cnt[i-1];
		for (i=n-1;~i;i-=8){
			B[--cnt[A[i]>>24&255]]=A[i];
			B[--cnt[A[i-1]>>24&255]]=A[i-1];
			B[--cnt[A[i-2]>>24&255]]=A[i-2];
			B[--cnt[A[i-3]>>24&255]]=A[i-3];
			B[--cnt[A[i-4]>>24&255]]=A[i-4];
			B[--cnt[A[i-5]>>24&255]]=A[i-5];
			B[--cnt[A[i-6]>>24&255]]=A[i-6];
			B[--cnt[A[i-7]>>24&255]]=A[i-7];
		}
		T=A; A=B; B=T;
	}
}

void sort(unsigned *a, int n)
{
	songsongsong(a,n);
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #1826.927 ms762 MB + 972 KBAcceptedScore: 100


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