QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#860782#9678. 网友小 Z 的树SimonLJK0 0ms15344kbC++171.5kb2025-01-18 14:55:592025-01-18 15:00:38

Judging History

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

  • [2025-01-18 15:00:38]
  • 评测
  • 测评结果:0
  • 用时:0ms
  • 内存:15344kb
  • [2025-01-18 14:55:59]
  • 提交

answer

#include"diameter.h"
#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define mp(x,y) make_pair(x,y)
const int N=100009;
int n,vis[N],dis[N];
vector<int> bel;
void clr(){
	for(int i=0;i<=n;i++) vis[i]=dis[i]=0;
	bel.clear();
	return;
}
pii find_diameter(int testid,int nn){
	n=nn;
	if(n==1) return mp(1,1);
	if(n==2) return mp(1,2);
	int mn=n+1,len;
	for(int i=3;i<=n;i++){
		len=query(1,2,i)/2;
		if(len<mn){
			mn=len;
			bel.clear();
		}
		if(len==mn)
			bel.push_back(i);
	}
	len=mn;
	int u,v,nd1,nd2,l;
	if(len==2){
		if(in(bel[0],1,2)) nd1=1,nd2=bel[0];
		else nd1=1,nd2=2;
	}
	else{
		u=bel[0]; v=bel[1];
		l=(query(1,2,u)+query(1,2,v)-len*2)/2;
		if(l==len-2){
			if(in(u,v,1)) nd1=1,nd2=u;
			else nd1=1,nd2=v;
		}
		else{
			for(int i=2;i<bel.size();i++){
				len=query(u,v,bel[i])/2;
				if(len==l+1){
					if(in(u,v,bel[i])) nd1=u,nd2=bel[i];
					else nd1=v,nd2=bel[i];
					break;
				}
			}
		}
		for(int i=0;i<bel.size();i++)
			vis[bel[i]]=1;
	}
	vis[nd1]=vis[nd2]=1;
	int ans,ans1,ans2,mx=-1;
	for(int i=1;i<=n;i++){
		if(vis[i]) continue;
		dis[i]=query(nd1,nd2,i)/2-1;
		if(dis[i]>mx){
			mx=dis[i];
			ans1=i;
		}
	}
	vis[ans1]=1;
	int rt,x;
	if(in(nd1,ans1,nd2)) rt=nd1;
	else rt=nd2;
	ans2=(nd1^nd2^rt); ans=mx+1;
	for(int i=1;i<=n;i++){
		if(vis[i]) continue;
		len=query(ans1,rt,i)/2;
		if(len!=mx+dis[i]+1){
			x=mx+dis[i]-len;
			len-=x;
		}
		if(len>ans){
			ans=len;
			ans2=i;
		}
	}
	clr();
	return mp(ans1,ans2);
}

詳細信息

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 15344kb

input:

1 100
25
1 3
2 18
3 8
4 18
5 14
6 22
7 18
8 10
9 11
10 12
11 25
12 16
13 11
14 17
15 17
16 25
17 2
18 20
19 18
20 12
21 1
22 17
23 14
24 1
50
1 37
2 27
3 10
4 25
5 16
6 17
7 10
8 36
9 16
10 6
11 48
12 2
13 28
14 30
15 10
16 44
17 31
18 1
19 6
20 7
21 30
22 42
23 45
24 23
25 27
26 39
27 45
28 48
29 4...

output:

WA

result:

wrong answer Wrong Answer

Subtask #2:

score: 0
Skipped

Dependency #1:

0%

Subtask #3:

score: 0
Skipped

Dependency #2:

0%

Subtask #4:

score: 0
Skipped

Dependency #3:

0%

Subtask #5:

score: 0
Skipped

Dependency #4:

0%

Subtask #6:

score: 0
Skipped

Dependency #5:

0%

Subtask #7:

score: 0
Skipped

Dependency #6:

0%

Subtask #8:

score: 0
Skipped

Dependency #7:

0%

Subtask #9:

score: 0
Skipped

Dependency #8:

0%

Subtask #10:

score: 0
Skipped

Dependency #9:

0%

Subtask #11:

score: 0
Skipped

Dependency #1:

0%