QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#740895#5455. TreeScriptucup-team2179RE 14ms3900kbC++232.0kb2024-11-13 12:10:112024-11-13 12:10:11

Judging History

你现在查看的是最新测评结果

  • [2024-11-13 12:10:11]
  • 评测
  • 测评结果:RE
  • 用时:14ms
  • 内存:3900kb
  • [2024-11-13 12:10:11]
  • 提交

answer

#include <bits/stdc++.h>
#define int long long
#define pb push_back
bool debug=1;

#define dbg(x) if(debug)cerr << BRIGHT_CYAN << #x << COLOR_RESET << " = " << (x) << NORMAL_FAINT << " (L" << __LINE__ << ") " << __FILE__ << COLOR_RESET << endl
using namespace std;void ass(string err){cout<<err<<"\n";exit(0);}void ass(int err){cout<<err<<"\n";exit(0);}
typedef pair<int,int> pii;
const string COLOR_RESET = "\033[0m",  BRIGHT_CYAN = "\033[1;36m", NORMAL_FAINT = "\033[0;2m";
vector<int> a[100005 + 1];
int dfs(int u){
	vector<int> now;
	for(auto p:a[u]){
		now.pb(dfs(p));
	}
	sort(now.begin(), now.end(),greater<int>());
	if(now.size()==0)
		return 1;
	if(now.size()==1)
		return now[0];
	return max(now[0],now[1] + 1);
}
void solve()
{
	ios::sync_with_stdio(false);cin.tie(0);mt19937_64 engie(202202052100238523);
	int n;
	cin>>n;
	for (int i = 0; i <= n;i++)
		a[i].clear();
	for (int i = 1; i <= n;i++){
		int u;
		cin>>u;
		a[u].pb(i);
	}
	cout<<dfs(1);
}

signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	//freopen("input.txt","r",stdin);
    //freopen("output.txt","w",stdout);
	int t=1;
	cin>>t;
	while(t--)
	{
		solve();
		cout << "\n";
	}
	return 0;
}

//__builtin_popcountl( ) 计算二进制1个数
//cout<<fixed<<setprecision(2);输出小数,四舍六入五取偶 
//__builtin_ctz( )返回末尾0的个数
//__builtin_clz( ) 返回前导0的个数
//__builtin_parity( )返回1的个数的奇偶性,偶数返回0
//__builtin_ffs( )返回最后一个1在第几位
//__builtin_sqrt( )快速开平方 
//stoll()字符串转为长整形
//点(x,y)的极角atan2(y,x)
//点(x,y)逆时针旋转A度,(x*cosA-y*sinA ,  x*sinA+y*cosA ) 
//C(n,k)+C(n,k-1)=(n+1,k)
//string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”
//(从stridx开始往后strlen个字符)的部分作为字符串的初值
/*
int fp(int a,int b)
{
	int re=1;
	while(b)
	{
		if(b&1)re*=a;
		a*=a;re%=M;a%=M;
		b=b>>1;
	}
	return re;
}
*/

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3756kb

input:

2
3
0 1 2
7
0 1 2 2 1 4 1

output:

1
2

result:

ok 2 number(s): "1 2"

Test #2:

score: 0
Accepted
time: 14ms
memory: 3900kb

input:

1000
197
0 1 1 2 1 4 1 5 8 3 5 1 4 7 12 14 4 7 10 9 12 11 16 10 21 19 22 17 25 13 28 9 5 15 26 26 33 25 15 1 35 6 32 17 37 8 19 43 19 27 29 9 30 6 31 27 35 35 37 13 28 38 57 31 38 8 22 14 33 9 18 62 52 37 10 19 22 60 54 12 38 59 64 65 80 82 28 60 85 78 27 25 71 14 52 6 59 14 87 32 33 41 59 41 88 38 ...

output:

4
4
3
4
3
4
5
5
4
4
4
4
5
5
3
4
4
5
3
5
5
3
5
4
5
4
5
3
4
5
2
5
4
3
5
5
4
3
3
4
4
4
3
3
4
4
5
5
4
4
4
2
4
5
5
4
4
5
4
4
5
4
3
4
4
4
4
4
5
4
4
5
5
4
5
5
2
3
4
1
1
5
5
4
3
4
5
5
4
5
4
4
4
4
4
4
4
4
4
4
5
4
4
6
5
5
3
3
5
3
4
3
3
3
4
4
3
2
4
4
3
5
3
5
3
4
4
4
5
4
5
4
5
4
4
3
5
4
4
3
3
3
3
2
5
5
4
2
4
5
...

result:

ok 1000 numbers

Test #3:

score: -100
Runtime Error

input:

1
200000
0 1 2 1 4 2 3 4 1 7 9 3 4 13 9 15 11 7 7 14 5 11 16 1 5 21 11 11 6 4 23 27 22 32 24 35 28 3 8 31 18 4 32 38 39 23 37 37 13 1 35 30 20 3 39 36 46 6 14 20 37 3 2 23 56 43 34 10 58 49 67 49 9 69 48 65 37 12 8 6 47 44 36 7 50 15 29 12 53 26 66 47 43 64 29 69 41 13 1 20 52 21 51 100 33 79 58 76 ...

output:


result: