# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
966765 |
2024-04-20T10:13:21 Z |
LOLOLO |
Jail (JOI22_jail) |
C++17 |
|
5000 ms |
318452 KB |
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
#define f first
#define s second
#define pb push_back
#define ep emplace
#define eb emplace_back
#define lb lower_bound
#define ub upper_bound
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define uniquev(v) sort(all(v)), (v).resize(unique(all(v)) - (v).begin())
#define mem(f,x) memset(f , x , sizeof(f))
#define sz(x) (int)(x).size()
#define __lcm(a, b) (1ll * ((a) / __gcd((a), (b))) * (b))
#define mxx *max_element
#define mnn *min_element
#define cntbit(x) __builtin_popcountll(x)
#define len(x) (int)(x.length())
const int N = 1.25e5;
vector <int> ed[N], ed2[N * 40];
int in[N], ou[N], dfstimer = 1, p[N][20], vi[N][20], vo[N][20], dep[N], st[N], en[N], cnt = 0;
char used[N * 40];
bool check_cycle(int u) {
if (used[u] == 1)
return 0;
used[u] = 1;
for (auto x : ed2[u]) {
if (used[x] != 2 && !check_cycle(x))
return 0;
}
used[u] = 2;
return 1;
}
void dfs(int u, int v) {
vi[u][0] = ++cnt;
vo[u][0] = ++cnt;
if (st[u]) {
ed2[st[u]].pb(vo[u][0]);
}
if (en[u]) {
ed2[vi[u][0]].pb(en[u]);
}
dep[u] = dep[v] + 1;
p[u][0] = v;
for (int i = 1; i < 20; i++) {
p[u][i] = p[p[u][i - 1]][i - 1];
vi[u][i] = ++cnt;
vo[u][i] = ++cnt;
ed2[vo[u][i - 1]].pb(vo[u][i]);
ed2[vo[p[u][i - 1]][i - 1]].pb(vo[u][i]);
ed2[vi[u][i]].pb(vi[u][i - 1]);
ed2[vi[u][i]].pb(vi[p[u][i - 1]][i - 1]);
}
++dfstimer;
in[u] = dfstimer;
for (auto x : ed[u]) {
if (x == v)
continue;
dfs(x, u);
}
ou[u] = dfstimer;
}
bool is(int a, int b) {
return in[a] <= in[b] && ou[a] >= in[b];
}
int lca(int a, int b) {
if (is(a, b))
return a;
if (is(b, a))
return b;
for (int i = 19; i >= 0; i--)
if (is(p[a][i], b) == 0)
a = p[a][i];
return p[a][0];
}
int dis(int a, int b) {
int c = lca(a, b);
return dep[a] + dep[b] - dep[c] * 2;
}
void addedge(int a, int b, int id) {
int k = dep[a] - dep[b] + 1;
for (int j = 0; j < 20; j++) {
if (k & (1 << j)) {
ed2[id].pb(vi[a][j]);
ed2[vo[a][j]].pb(id);
a = p[a][j];
}
}
}
int find(int a, int k) {
for (int j = 0; j < 20; j++)
if (k & (1 << j))
a = p[a][j];
return a;
}
string solve() {
int n;
cin >> n;
for (int i = 1; i < n; i++) {
int a, b;
cin >> a >> b;
ed[a].pb(b);
ed[b].pb(a);
}
int m;
cin >> m;
vector <pair <int, int>> save;
for (int i = 1; i <= m; i++) {
int s, t;
cin >> s >> t;
save.pb({s, t});
st[s] = i, en[t] = i;
}
cnt = m;
dfs(1, 1);
int id = 0;
for (auto x : save) {
id++;
int s = x.f, t = x.s;
int a = s, b = t;
if (dep[s] > dep[t])
swap(s, t);
//int c = lca(s, t);
/*if (s == c) {
addedge(p[t][0], find(t, dep[t] - dep[s] - 1), id);
} else {
addedge(p[s][0], c, id);
addedge(p[t][0], c, id);
}*/
for (int i = 1; i <= n; i++) {
if (i == a || i == b)
continue;
if (dis(i, a) + dis(i, b) == dis(a, b)) {
if (st[i]) {
ed2[st[i]].pb(id);
}
if (en[i]) {
ed2[id].pb(en[i]);
}
}
}
if (en[a]) {
ed2[id].pb(en[a]);
}
if (st[b]) {
ed2[st[b]].pb(id);
}
}
int is = 0;
for (int i = 1; i <= m; i++) {
if (used[i] == 0 && check_cycle(i) == 0) {
is = 1;
break;
}
}
for (int i = 1; i <= n; i++) {
ed[i].clear();
st[i] = en[i] = dep[i] = 0;
}
for (int i = 1; i <= cnt; i++) {
ed2[i].clear();
used[i] = 0;
}
if (is == 0)
return "Yes";
return "No";
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int t = 1;
cin >> t;
while (t--) {
//solve();
cout << solve() << "\n";
}
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
32 ms |
122448 KB |
Output is correct |
2 |
Correct |
32 ms |
122712 KB |
Output is correct |
3 |
Correct |
31 ms |
122444 KB |
Output is correct |
4 |
Correct |
54 ms |
122784 KB |
Output is correct |
5 |
Correct |
78 ms |
123216 KB |
Output is correct |
6 |
Correct |
34 ms |
122716 KB |
Output is correct |
7 |
Correct |
34 ms |
122936 KB |
Output is correct |
8 |
Correct |
38 ms |
122820 KB |
Output is correct |
9 |
Correct |
772 ms |
135524 KB |
Output is correct |
10 |
Correct |
1346 ms |
318392 KB |
Output is correct |
11 |
Correct |
41 ms |
122460 KB |
Output is correct |
12 |
Correct |
127 ms |
123716 KB |
Output is correct |
13 |
Execution timed out |
5025 ms |
318360 KB |
Time limit exceeded |
14 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
31 ms |
122460 KB |
Output is correct |
2 |
Correct |
31 ms |
122460 KB |
Output is correct |
3 |
Correct |
33 ms |
122872 KB |
Output is correct |
4 |
Correct |
35 ms |
122712 KB |
Output is correct |
5 |
Correct |
38 ms |
123156 KB |
Output is correct |
6 |
Correct |
35 ms |
122716 KB |
Output is correct |
7 |
Correct |
38 ms |
122968 KB |
Output is correct |
8 |
Correct |
40 ms |
122664 KB |
Output is correct |
9 |
Correct |
34 ms |
122716 KB |
Output is correct |
10 |
Correct |
35 ms |
122716 KB |
Output is correct |
11 |
Correct |
35 ms |
122708 KB |
Output is correct |
12 |
Correct |
33 ms |
122716 KB |
Output is correct |
13 |
Correct |
33 ms |
122716 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
31 ms |
122460 KB |
Output is correct |
2 |
Correct |
31 ms |
122460 KB |
Output is correct |
3 |
Correct |
33 ms |
122872 KB |
Output is correct |
4 |
Correct |
35 ms |
122712 KB |
Output is correct |
5 |
Correct |
38 ms |
123156 KB |
Output is correct |
6 |
Correct |
35 ms |
122716 KB |
Output is correct |
7 |
Correct |
38 ms |
122968 KB |
Output is correct |
8 |
Correct |
40 ms |
122664 KB |
Output is correct |
9 |
Correct |
34 ms |
122716 KB |
Output is correct |
10 |
Correct |
35 ms |
122716 KB |
Output is correct |
11 |
Correct |
35 ms |
122708 KB |
Output is correct |
12 |
Correct |
33 ms |
122716 KB |
Output is correct |
13 |
Correct |
33 ms |
122716 KB |
Output is correct |
14 |
Correct |
33 ms |
122964 KB |
Output is correct |
15 |
Correct |
31 ms |
122456 KB |
Output is correct |
16 |
Correct |
34 ms |
122972 KB |
Output is correct |
17 |
Correct |
39 ms |
122972 KB |
Output is correct |
18 |
Correct |
39 ms |
122896 KB |
Output is correct |
19 |
Correct |
31 ms |
122448 KB |
Output is correct |
20 |
Correct |
41 ms |
122960 KB |
Output is correct |
21 |
Correct |
37 ms |
122708 KB |
Output is correct |
22 |
Correct |
41 ms |
122704 KB |
Output is correct |
23 |
Correct |
31 ms |
122492 KB |
Output is correct |
24 |
Correct |
32 ms |
122456 KB |
Output is correct |
25 |
Correct |
41 ms |
122896 KB |
Output is correct |
26 |
Correct |
33 ms |
122856 KB |
Output is correct |
27 |
Correct |
42 ms |
122712 KB |
Output is correct |
28 |
Correct |
32 ms |
122376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
31 ms |
122460 KB |
Output is correct |
2 |
Correct |
31 ms |
122460 KB |
Output is correct |
3 |
Correct |
33 ms |
122872 KB |
Output is correct |
4 |
Correct |
35 ms |
122712 KB |
Output is correct |
5 |
Correct |
38 ms |
123156 KB |
Output is correct |
6 |
Correct |
35 ms |
122716 KB |
Output is correct |
7 |
Correct |
38 ms |
122968 KB |
Output is correct |
8 |
Correct |
40 ms |
122664 KB |
Output is correct |
9 |
Correct |
34 ms |
122716 KB |
Output is correct |
10 |
Correct |
35 ms |
122716 KB |
Output is correct |
11 |
Correct |
35 ms |
122708 KB |
Output is correct |
12 |
Correct |
33 ms |
122716 KB |
Output is correct |
13 |
Correct |
33 ms |
122716 KB |
Output is correct |
14 |
Correct |
33 ms |
122964 KB |
Output is correct |
15 |
Correct |
31 ms |
122456 KB |
Output is correct |
16 |
Correct |
34 ms |
122972 KB |
Output is correct |
17 |
Correct |
39 ms |
122972 KB |
Output is correct |
18 |
Correct |
39 ms |
122896 KB |
Output is correct |
19 |
Correct |
31 ms |
122448 KB |
Output is correct |
20 |
Correct |
41 ms |
122960 KB |
Output is correct |
21 |
Correct |
37 ms |
122708 KB |
Output is correct |
22 |
Correct |
41 ms |
122704 KB |
Output is correct |
23 |
Correct |
31 ms |
122492 KB |
Output is correct |
24 |
Correct |
32 ms |
122456 KB |
Output is correct |
25 |
Correct |
41 ms |
122896 KB |
Output is correct |
26 |
Correct |
33 ms |
122856 KB |
Output is correct |
27 |
Correct |
42 ms |
122712 KB |
Output is correct |
28 |
Correct |
32 ms |
122376 KB |
Output is correct |
29 |
Correct |
37 ms |
122964 KB |
Output is correct |
30 |
Correct |
119 ms |
123012 KB |
Output is correct |
31 |
Correct |
84 ms |
123044 KB |
Output is correct |
32 |
Correct |
95 ms |
122836 KB |
Output is correct |
33 |
Correct |
54 ms |
122704 KB |
Output is correct |
34 |
Correct |
151 ms |
122716 KB |
Output is correct |
35 |
Correct |
132 ms |
122856 KB |
Output is correct |
36 |
Correct |
140 ms |
122704 KB |
Output is correct |
37 |
Correct |
94 ms |
122704 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
31 ms |
122460 KB |
Output is correct |
2 |
Correct |
31 ms |
122460 KB |
Output is correct |
3 |
Correct |
33 ms |
122872 KB |
Output is correct |
4 |
Correct |
35 ms |
122712 KB |
Output is correct |
5 |
Correct |
38 ms |
123156 KB |
Output is correct |
6 |
Correct |
35 ms |
122716 KB |
Output is correct |
7 |
Correct |
38 ms |
122968 KB |
Output is correct |
8 |
Correct |
40 ms |
122664 KB |
Output is correct |
9 |
Correct |
34 ms |
122716 KB |
Output is correct |
10 |
Correct |
35 ms |
122716 KB |
Output is correct |
11 |
Correct |
35 ms |
122708 KB |
Output is correct |
12 |
Correct |
33 ms |
122716 KB |
Output is correct |
13 |
Correct |
33 ms |
122716 KB |
Output is correct |
14 |
Correct |
33 ms |
122964 KB |
Output is correct |
15 |
Correct |
31 ms |
122456 KB |
Output is correct |
16 |
Correct |
34 ms |
122972 KB |
Output is correct |
17 |
Correct |
39 ms |
122972 KB |
Output is correct |
18 |
Correct |
39 ms |
122896 KB |
Output is correct |
19 |
Correct |
31 ms |
122448 KB |
Output is correct |
20 |
Correct |
41 ms |
122960 KB |
Output is correct |
21 |
Correct |
37 ms |
122708 KB |
Output is correct |
22 |
Correct |
41 ms |
122704 KB |
Output is correct |
23 |
Correct |
31 ms |
122492 KB |
Output is correct |
24 |
Correct |
32 ms |
122456 KB |
Output is correct |
25 |
Correct |
41 ms |
122896 KB |
Output is correct |
26 |
Correct |
33 ms |
122856 KB |
Output is correct |
27 |
Correct |
42 ms |
122712 KB |
Output is correct |
28 |
Correct |
32 ms |
122376 KB |
Output is correct |
29 |
Correct |
37 ms |
122964 KB |
Output is correct |
30 |
Correct |
119 ms |
123012 KB |
Output is correct |
31 |
Correct |
84 ms |
123044 KB |
Output is correct |
32 |
Correct |
95 ms |
122836 KB |
Output is correct |
33 |
Correct |
54 ms |
122704 KB |
Output is correct |
34 |
Correct |
151 ms |
122716 KB |
Output is correct |
35 |
Correct |
132 ms |
122856 KB |
Output is correct |
36 |
Correct |
140 ms |
122704 KB |
Output is correct |
37 |
Correct |
94 ms |
122704 KB |
Output is correct |
38 |
Correct |
790 ms |
135444 KB |
Output is correct |
39 |
Correct |
1429 ms |
318452 KB |
Output is correct |
40 |
Execution timed out |
5026 ms |
132956 KB |
Time limit exceeded |
41 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
43 ms |
122480 KB |
Output is correct |
2 |
Correct |
46 ms |
122448 KB |
Output is correct |
3 |
Correct |
42 ms |
122388 KB |
Output is correct |
4 |
Correct |
44 ms |
122528 KB |
Output is correct |
5 |
Correct |
59 ms |
122456 KB |
Output is correct |
6 |
Correct |
42 ms |
122716 KB |
Output is correct |
7 |
Correct |
47 ms |
122716 KB |
Output is correct |
8 |
Correct |
35 ms |
124520 KB |
Output is correct |
9 |
Correct |
45 ms |
122632 KB |
Output is correct |
10 |
Correct |
39 ms |
122452 KB |
Output is correct |
11 |
Correct |
35 ms |
122748 KB |
Output is correct |
12 |
Correct |
129 ms |
122912 KB |
Output is correct |
13 |
Correct |
859 ms |
123544 KB |
Output is correct |
14 |
Correct |
1062 ms |
123720 KB |
Output is correct |
15 |
Correct |
1016 ms |
123556 KB |
Output is correct |
16 |
Execution timed out |
5064 ms |
309428 KB |
Time limit exceeded |
17 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
32 ms |
122448 KB |
Output is correct |
2 |
Correct |
32 ms |
122712 KB |
Output is correct |
3 |
Correct |
31 ms |
122444 KB |
Output is correct |
4 |
Correct |
54 ms |
122784 KB |
Output is correct |
5 |
Correct |
78 ms |
123216 KB |
Output is correct |
6 |
Correct |
34 ms |
122716 KB |
Output is correct |
7 |
Correct |
34 ms |
122936 KB |
Output is correct |
8 |
Correct |
38 ms |
122820 KB |
Output is correct |
9 |
Correct |
772 ms |
135524 KB |
Output is correct |
10 |
Correct |
1346 ms |
318392 KB |
Output is correct |
11 |
Correct |
41 ms |
122460 KB |
Output is correct |
12 |
Correct |
127 ms |
123716 KB |
Output is correct |
13 |
Execution timed out |
5025 ms |
318360 KB |
Time limit exceeded |
14 |
Halted |
0 ms |
0 KB |
- |