QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#686301 | #5015. 树 | masterhuang | Compile Error | / | / | C++23 | 990b | 2024-10-29 10:52:37 | 2024-10-29 10:52:39 |
Judging History
answer
#include<bits/stdc++.h>
#include "tree.h"
#define LL long long
#define bs basic_string<int>
#define fr(x) freopen(#x".in","r",stdin);freopen(#x".out","w",stdout);
using namespace std;
const int N=1e3+5;
mt19937 rnd(time(0));
int n,fa[N],d[N],lca[N][N];bs g[N];
inline int dis(int x,int y){return d[x]+d[y]-(d[lca[x][y]]<<1);}
inline void upd(int x,int fa)
{
::fa[x]=fa;d[x]=d[fa]+1;
for(int i=1;i<=n;i++) lca[x][i]=lca[i][x]=lca[fa][i];
lca[x][x]=x;
}
inline void sol(int x,bs g)
{
if(g.size()==1) return upd(x,g[0]);
shuffle(g.begin(),g.end(),rnd);
bs g1,G;int m=g.size()/2,res;
for(int i=0;i<m;i++) g1+=g[i];res=ask(x,g1);
for(int i:g)
{
int s=m;for(int j:g1) s+=dis(i,j);
if(s==res) G+=i;
}sol(x,G);
}
void solver(int n0,int A,int B)
{
n=n0;int rt=rnd()%n+1;lca[rt][rt]=rt;
for(int i=1;i<=n;i++) if(i!=rt) g[ask(i,{rt})]+=i;
for(int i=2;g[i].size();i++) for(int j:g[i]) sol(j,g[i-1]);
for(int i=1;i<=n;i++) if(i!=rt) answer(i,fa[i]);
}
Details
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 sol(int, std::__cxx11::basic_string<int>)’: answer.code:22:49: error: could not convert ‘g1’ from ‘std::__cxx11::basic_string<int>’ to ‘std::vector<int>’ 22 | for(int i=0;i<m;i++) g1+=g[i];res=ask(x,g1); | ^~ | | | std::__cxx11::basic_string<int>