比赛 |
2024暑假C班集训C |
评测结果 |
C |
题目名称 |
喵星人集会 |
最终得分 |
0 |
用户昵称 |
liuyiche |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2024-07-12 11:46:28 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int n;
struct node
{
bool flag;
vector<int> nxt;
};
node v[55];
inline void dfs(int u, int fa)
{
int num = v[u].son.size();
v[u].dep = v[fa].dep+1;
for (int i = 0; i <= log2(n); ++i)
f[u][i+1] = f[f[u][i]][i];
for (int i = 0; i < num; ++i)
{
int cd = v[u].son[i];
f[cd][0] = u;
dfs(cd,u);
}
}
inline int LCA(int x, int y)
{
if(v[x].dep < v[y].dep)
swap(x,y);
for (int i = log2(n); i >= 0; --i)
{
if(f[x][i] > 0 && v[f[x][i]].dep >= v[y].dep)
x = f[x][i];
if(x == y)
return x;
}
for (int i = log2(n); i >= 0; --i)
{
if(f[x][i] != f[y][i])
{
x = f[x][i];
y = f[y][i];
}
}
return f[x][0];
}
int main()
{
freopen("party.in", "r", stdin);
freopen("party.out", "w", stdout);
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
memset(f,0,sizeof(f));
cin >> n;
for (int i = 1; i <= n; ++i)
v[i].fa = 0;
for(int i = 1; i <= n; ++i)
{
char a;
cin >> a;
v[i].flag = a-'0';
}
for(int i = 1; i < n; ++i)
{
int u, v;
cin >> u >> v;
v[u].nxt.push_back(v);
v[v].nxt.push_back(u);
}
for(int i = 1; i <= n; ++i)
{
}
return 0;
}