为什么开了快读还是TLE?
查看原帖
为什么开了快读还是TLE?
636849
HiCode2009楼主2022/8/2 09:57
#include<bits/stdc++.h>
using namespace std;
inline int read()
{
	int x=0,f=1;
	char c=getchar();
	while(!isdigit(c))
	{
		if(c=='-') f=-1;
		c=getchar();
	}
	while(isdigit(c))
	{
		x=x*10+c-'0';
		c=getchar();
	}
	return x*f;
}
inline void write(int x)
{
	if(x<0) putchar('-'),x=-x;
	if(x>9) write(x/10);
	putchar(x%10+'0');
}
int main()
{
	int q;
	q=read();
	for(int i=1;i<=q;i++)
	{
		int n;
		n=read();
		int p[n+1];
		for(int j=1;j<=n;j++) p[j]=read();
		for(int j=1;j<=n;j++)
		{
			int cnt=1;
			int t=p[j];
			while(t!=j)
			{
				cnt++;
				t=p[t];
			}
			write(cnt);
			printf(" ");
		}
		printf("\n");
	}
	return 0;
}
2022/8/2 09:57
加载中...