请求加强数据
查看原帖
请求加强数据
298051
xkcdjerry楼主2021/8/1 20:17

RT,没有加任何优化直接 O(n2)O(n^2) 暴力过去,最慢的点 20ms:
代码:

#include <cstdio>
#define N 10010
int a[N];
int n;
int main()
{
	int q,op,x;
	scanf("%d",&q);
	while(q--)
	{
		scanf("%d%d",&op,&x);
		switch(op)
		{
			case 1://rank
				{
					int ans=0;
					for(int i=1;i<=n;i++)
						if(a[i]<x)
							ans++;
						else
							break;
					printf("%d\n",ans+1);
					break;
				}
			case 2://find
				{
					printf("%d\n",a[x]);
					break;
				}
			case 3://pre
				{
					for(int i=n;i>=1;i--)
						if(a[i]<x)
						{
							printf("%d\n",a[i]);
							goto end0;
						}
					printf("-2147483647\n");
end0:break;
				}
			case 4://nxt
				{
					for(int i=1;i<=n;i++)
						if(a[i]>x)
						{
							printf("%d\n",a[i]);
							goto end;
						}
					printf("2147483647\n");
end:;break;
				}
			case 5://insert
				{
					for(int i=1;i<=n;i++)
					{
						if(a[i]>=x)
						{
							for(int j=n;j>=i;j--) a[j+1]=a[j];
							a[i]=x;
							goto end1;
						}
					}
					a[n+1]=x;
end1:n++;
					break;
				}
		}
	}
	return 0;
}

评测记录
话说这个应该@哪个管理9kcf

2021/8/1 20:17
加载中...