提交记录 13380


用户 题目 状态 得分 用时 内存 语言 代码长度
S1rius 1001. 测测你的排序 Accepted 100 1.115 s 781268 KB C++11 1.24 KB
提交时间 评测时间
2020-08-01 15:02:42 2020-08-01 15:02:47
unsigned int c[257],c1[257],c2[257],c3[257],c4[257],c5[257],c6[257],c7[257],c0[257],tmp[100000000];
void sort(unsigned *a, int n)
{
    int dd=n-(n&7);
	for(register int i=0;i<4;++i)
	{
		for(register int j=0;j<dd;j+=8)
		{
			++c0[((a[j  ]>>(i*8))&255)];
			++c1[((a[j+1]>>(i*8))&255)];
			++c2[((a[j+2]>>(i*8))&255)];
			++c3[((a[j+3]>>(i*8))&255)];
			++c4[((a[j+4]>>(i*8))&255)];
			++c5[((a[j+5]>>(i*8))&255)];
			++c6[((a[j+6]>>(i*8))&255)];
			++c7[((a[j+7]>>(i*8))&255)];
		}
		switch(n&7)
		{
		    case 7:++c6[(a[dd+6]>>(i*8))&255];
		    case 6:++c5[(a[dd+5]>>(i*8))&255];
		    case 5:++c4[(a[dd+4]>>(i*8))&255];
		    case 4:++c3[(a[dd+3]>>(i*8))&255];
		    case 3:++c2[(a[dd+2]>>(i*8))&255];
		    case 2:++c1[(a[dd+1]>>(i*8))&255];
		    case 1:++c0[(a[dd  ]>>(i*8))&255];
		}
		for(register int j=0;j<=255;++j)
		{
			c[j]+=c0[j];
			c[j]+=c1[j];
			c[j]+=c2[j];
			c[j]+=c3[j];
			c[j]+=c4[j];
			c[j]+=c5[j];
			c[j]+=c6[j];
			c[j]+=c7[j];
			c0[j]=0;
			c1[j]=0;
			c2[j]=0;
			c3[j]=0;
			c4[j]=0;
			c5[j]=0;
			c6[j]=0;
			c7[j]=0;
		}
		for(register int j=1;j<=255;++j)c[j]+=c[j-1];
		for(register int j=n-1;j>=0;--j)tmp[--c[(a[j]>>(i*8))&255]]=a[j];
		for(register int j=0;j<=255;++j)c[j]=0;
		for(register int j=0;j<n;++j)a[j]=tmp[j];
	}
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #11.115 s762 MB + 980 KBAcceptedScore: 100


Judge Duck Online | 评测鸭在线
Server Time: 2024-05-07 18:56:26 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用