QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#50938#852. JellyfishtricyzhkxWA 2ms6248kbC++141004b2022-09-29 19:34:302022-09-29 19:34:31

Judging History

This is the latest submission verdict.

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-09-29 19:34:31]
  • Judged
  • Verdict: WA
  • Time: 2ms
  • Memory: 6248kb
  • [2022-09-29 19:34:30]
  • Submitted

answer

# include <bits/stdc++.h>
using namespace std;
int du[100010],sz[100010],f[100010],g[100010],mx[100010];
vector<int> G[100010];
queue<int> que;
int main()
{
	int T;
	cin>>T;
	while(T--)
	{
		int n,u,v;
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			scanf("%d%d",&u,&v);
			du[u]++;du[v]++;
			G[u].push_back(v);G[v].push_back(u);
		}
		for(int i=1;i<=n;i++) sz[i]=1,mx[i]=f[i]=g[i]=0;
		for(int i=1;i<=n;i++)
			if(du[i]==1) que.push(i),f[i]=1;
		while(!que.empty())
		{
			int u=que.front();que.pop();
			for(int v:G[u])
			{
				if(du[v]==1) continue;
				sz[v]+=sz[u];f[v]+=f[u];
				mx[v]=max(mx[v],f[u]);
				g[v]=max(g[v],g[u]);
				if((--du[v])==1) que.push(v);
			}
		}
		for(int i=1;i<=n;i++) g[i]=max(g[i],mx[i]+1);
		int len=0,cnt=0,maxn=0;
		for(int i=1;i<=n;i++)
			if(du[i]>1) len++,cnt+=(sz[i]==1),maxn=max(maxn,max(f[i],g[i]));
		printf("%d\n",max(maxn,max(min(len,3),len-cnt+min(cnt,2))));
		for(int i=1;i<=n;i++) du[i]=0,G[i].clear();
	}
	return 0;
}

详细

Test #1:

score: 0
Wrong Answer
time: 2ms
memory: 6248kb

input:

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

output:

3
3

result:

wrong answer 1st numbers differ - expected: '4', found: '3'