이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "Joi.h"
using namespace std;
using ll = long long;
void Joi(int N, int M, int A[], int B[], long long X, int T) {
bool bio[N];
memset(bio, 0, sizeof bio);
int p = 0;
vector<vector<int>> adj(N);
for (int i = 0; i < M; ++i) {
adj[A[i]].push_back(B[i]);
adj[B[i]].push_back(A[i]);
}
for (auto &v: adj) sort(begin(v), end(v));
function<void(int)> dfs = [&](int ver) {
bio[ver] = true;
MessageBoard(ver, (X >> p++) & 1);
for (auto u: adj[ver]) if (!bio[u]) {
dfs(u);
}
};
dfs(0);
}
#include <bits/stdc++.h>
#include "Ioi.h"
using namespace std;
long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) {
vector<vector<int>> adj(N);
for (int i = 0; i < M; ++i) {
adj[A[i]].push_back(B[i]);
adj[B[i]].push_back(A[i]);
}
for (auto &v: adj) sort(begin(v), end(v));
int col[N];
col[P] = V;
bool bio[N];
memset(bio, 0, sizeof bio);
function<void(int, int)> dfsfind = [&](int ver, int par) {
bio[ver] = true;
for (auto u: adj[ver]) if (!bio[u]) {
col[u] = Move(u);
dfsfind(u, ver);
}
if (par != -1) col[par] = Move(par);
};
dfsfind(P, -1);
memset(bio, 0, sizeof bio);
long long ans = 0;
int p = 0;
function<void(int)> dfs = [&](int ver) {
bio[ver] = true;
if (p > 63) return;
ans ^= (1ll * col[ver]) << p++;
for (auto u: adj[ver]) if (!bio[u]) {
dfs(u);
}
};
dfs(0);
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |