QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#860782 | #9678. 网友小 Z 的树 | SimonLJK | 0 | 0ms | 15344kb | C++17 | 1.5kb | 2025-01-18 14:55:59 | 2025-01-18 15:00:38 |
Judging History
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%