QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#312459#5015. 树zyxawaCompile Error//C++14949b2024-01-23 21:59:392024-01-23 21:59:39

Judging History

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

  • [2024-01-23 21:59:39]
  • 评测
  • [2024-01-23 21:59:39]
  • 提交

answer

#include<bits/stdc++.h>
#include"tree.h"
using namespace std;
mt19937 rnd(time(0));
vector <int> G[1001];
int rt,dep[1001],lca[1001][1001],fa[1001];
#define dis(u,v) (dep[u]+dep[v]-2*dep[lca[u][v]])
void init(int x,int y){
	fa[x]=y,dep[x]=dep[y]+1,lca[x][x]=x;
	for(int i=1;i<=n;i++) if(fa[i]||i==rt) lca[x][i]=lca[i][x]=lca[y][i];
}
void solve(int x,vector <int> s){
	if(s.size()==1) return init(x,s[0]);
	int mid=s.size()/2;
	vector <int> now,ans;
	shuffle(begin(s),end(s),rnd);
	for(int i=0;i<mid;i++) now.push_back(s[i]);
	int val=ask(x,now);
	for(auto i:s){
		int res=mid;
		for(auto j:now) res+=dis(i,j);
		if(res==val) ans.push_back(i);
	}
	solve(x,ans);
}
void solver(int n,int a,int b){
	rt=rnd()%n+1;
	for(int i=1;i<=n;i++) G[i!=rt?ask(rt,{i}):0].push_back(i);
	for(auto i:G[1]) init(i,rt);
	for(int i=2;!G[i].empty();i++) for(auto j:G[i]) solve(j,G[i-1]);
	for(int i=1;i<=n;i++) if(i!=rt) answer(i,fa[i]);
}

详细

implementer.cpp: In function ‘void regduj260135279::init()’:
implementer.cpp:32:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   32 |                 scanf("%d",&n);
      |                 ~~~~~^~~~~~~~~
implementer.cpp:45:30: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   45 |                         scanf("%d%d",&u,&v);
      |                         ~~~~~^~~~~~~~~~~~~~
answer.code: In function ‘void init(int, int)’:
answer.code:10:24: error: ‘n’ was not declared in this scope
   10 |         for(int i=1;i<=n;i++) if(fa[i]||i==rt) lca[x][i]=lca[i][x]=lca[y][i];
      |                        ^