基数排序:为啥会RE?
查看原帖
基数排序:为啥会RE?
351044
weimanchi2楼主2021/11/14 09:07
#include<bits/stdc++.h>
using namespace std;
int a[99999999],n,k;
struct edge
{
	int next,to;
}e[99999999];
int head[400];
inline void write(int x)
{
	if(x>9)write(x/10);
	putchar(x%10^48);
}
inline void sort()
{
	for(int i=0,p=n;i<32;i+=8,p=n)
	{
		for(int j=1;j<=n;j++)
		{
			e[j].next=head[(a[j]>>i)&255];
			head[((e[j].to=a[j])>>i)&255]=j;
		}
		for(int j=255;j>-1;j--)
			for(;head[j];head[j]=e[head[j]].next)
				a[p--]=e[head[j]].to;
	}
}
int main()
{
	cin>>n;
	cin>>k;
	for(int i=1;i<=n;i++)cin>>a[i];
	sort();
	for(int i=1;i<=n;i++)
	{
		if(i==k+1)	write(a[i]),putchar(' ');
	}
	return 0;
}

基数排序快排模板没开02优化113ms 为啥就runtime error了呢

2021/11/14 09:07
加载中...