提交记录 7222


用户 题目 状态 得分 用时 内存 语言 代码长度
_23333 1001. 测测你的排序 Compile Error 0 0 ns 0 KB C++11 3.66 KB
提交时间 评测时间
2019-01-07 16:39:06 2020-08-01 01:01:25
#include <algorithm>
int cnt0[1<<8],cnt8[1<<8],cnt16[1<<8],cnt24[1<<8];
void sort(unsigned *a, int n) {
	for(int re i=1;i<256;++i){
            cnt0[i]+=cnt0[i-1];
            cnt8[i]+=cnt8[i-1];
            cnt16[i]+=cnt16[i-1];
            cnt24[i]+=cnt24[i-1];
        }
        
        re int rep=n>>3,tim=rep;
        re u32 *now=a+n-1;
        while(tim--){
            b[--cnt0[now[0]&255]]=now[0];
            b[--cnt0[now[-1]&255]]=now[-1];
            b[--cnt0[now[-2]&255]]=now[-2];
            b[--cnt0[now[-3]&255]]=now[-3];
            b[--cnt0[now[-4]&255]]=now[-4];
            b[--cnt0[now[-5]&255]]=now[-5];
            b[--cnt0[now[-6]&255]]=now[-6];
            b[--cnt0[now[-7]&255]]=now[-7];now-=8;
        }
        switch(n&7){
            case 7:{b[--cnt0[*now&255]]=*now;--now;}
            case 6:{b[--cnt0[*now&255]]=*now;--now;}
            case 5:{b[--cnt0[*now&255]]=*now;--now;}
            case 4:{b[--cnt0[*now&255]]=*now;--now;}
            case 3:{b[--cnt0[*now&255]]=*now;--now;}
            case 2:{b[--cnt0[*now&255]]=*now;--now;}
            case 1:{b[--cnt0[*now&255]]=*now;--now;}
        }
        tim=rep;
        now=b+n-1;
        while(tim--){
            a[--cnt8[now[0]>>8&255]]=now[0];
            a[--cnt8[now[-1]>>8&255]]=now[-1];
            a[--cnt8[now[-2]>>8&255]]=now[-2];
            a[--cnt8[now[-3]>>8&255]]=now[-3];
            a[--cnt8[now[-4]>>8&255]]=now[-4];
            a[--cnt8[now[-5]>>8&255]]=now[-5];
            a[--cnt8[now[-6]>>8&255]]=now[-6];
            a[--cnt8[now[-7]>>8&255]]=now[-7];now-=8;
        }
        switch(n&7){
            case 7:{a[--cnt8[*now>>8&255]]=*now;--now;}
            case 6:{a[--cnt8[*now>>8&255]]=*now;--now;}
            case 5:{a[--cnt8[*now>>8&255]]=*now;--now;}
            case 4:{a[--cnt8[*now>>8&255]]=*now;--now;}
            case 3:{a[--cnt8[*now>>8&255]]=*now;--now;}
            case 2:{a[--cnt8[*now>>8&255]]=*now;--now;}
            case 1:{a[--cnt8[*now>>8&255]]=*now;--now;}
        }
        tim=rep;
        now=a+n-1;
        while(tim--){
            b[--cnt16[now[0]>>16&255]]=now[0];
            b[--cnt16[now[-1]>>16&255]]=now[-1];
            b[--cnt16[now[-2]>>16&255]]=now[-2];
            b[--cnt16[now[-3]>>16&255]]=now[-3];
            b[--cnt16[now[-4]>>16&255]]=now[-4];
            b[--cnt16[now[-5]>>16&255]]=now[-5];
            b[--cnt16[now[-6]>>16&255]]=now[-6];
            b[--cnt16[now[-7]>>16&255]]=now[-7];now-=8;
        }
        switch(n&7){
            case 7:{b[--cnt16[*now>>16&255]]=*now;--now;}
            case 6:{b[--cnt16[*now>>16&255]]=*now;--now;}
            case 5:{b[--cnt16[*now>>16&255]]=*now;--now;}
            case 4:{b[--cnt16[*now>>16&255]]=*now;--now;}
            case 3:{b[--cnt16[*now>>16&255]]=*now;--now;}
            case 2:{b[--cnt16[*now>>16&255]]=*now;--now;}
            case 1:{b[--cnt16[*now>>16&255]]=*now;--now;}
        }
        tim=rep;
        now=b+n-1;
        while(tim--){
            a[--cnt24[now[0]>>24]]=now[0];
            a[--cnt24[now[-1]>>24]]=now[-1];
            a[--cnt24[now[-2]>>24]]=now[-2];
            a[--cnt24[now[-3]>>24]]=now[-3];
            a[--cnt24[now[-4]>>24]]=now[-4];
            a[--cnt24[now[-5]>>24]]=now[-5];
            a[--cnt24[now[-6]>>24]]=now[-6];
            a[--cnt24[now[-7]>>24]]=now[-7];now-=8;
        }
        switch(n&7){
            case 7:{a[--cnt24[*now>>24]]=*now;--now;}
            case 6:{a[--cnt24[*now>>24]]=*now;--now;}
            case 5:{a[--cnt24[*now>>24]]=*now;--now;}
            case 4:{a[--cnt24[*now>>24]]=*now;--now;}
            case 3:{a[--cnt24[*now>>24]]=*now;--now;}
            case 2:{a[--cnt24[*now>>24]]=*now;--now;}
            case 1:{a[--cnt24[*now>>24]]=*now;--now;}
        }
}

CompilationN/AN/ACompile ErrorScore: N/A


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