Submission #68578


ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
#include <vector>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
vector<vector<int> > graph, tree;
vector<int> color, parent, parent_color;
vector<__gnu_pbds::cc_hash_table<int, int> > lis;
int dfs(int cur, int par) {
parent[cur] = par;
if (par != -1) {
lis[cur][color[par]]++;
parent_color[cur] = color[par];
}
for (int to : graph[cur]) {
if (to == par) continue;
lis[cur][color[dfs(to, cur)]]++;
}
return (cur);
}
int main() {
cin.tie(nullptr);
ios_base::sync_with_stdio(false);
int n, q;
cin >> n >> q;
graph.resize(n);
tree.resize(n);
color.resize(n);
parent.resize(n);
parent_color.resize(n);
lis.resize(n);
for (int i = 0; i < n; ++i) {
cin >> color[i];
}
for (int i = 0; i < n - 1; ++i) {
int u, v;
cin >> u >> v;
--u, --v;
graph[u].emplace_back(v);
graph[v].emplace_back(u);
}
dfs(0, -1);
auto add = [&](int node, int color) -> void {
lis[node][color]++;
};
auto del = [&](int node, int color) -> void {
if (--lis[node][color] == 0) {
lis[node].erase(color);
}
};
for (int i = 0; i < q; ++i) {
int x, c;
cin >> x >> c;
--x;
if (parent[x] != -1) {
del(x, parent_color[x]);
add(x, color[parent[x]]);
parent_color[x] = color[parent[x]];
del(parent[x], color[x]);
add(parent[x], c);
}
color[x] = c;
cout << lis[x].size() << '\n';
}
return (0);
}

ステータス

項目 データ
問題 1527 - Colorful Tree
ユーザー名 ei1903
投稿日時 2021-09-23 18:21:07
言語 C++17
状態 Accepted
得点 4
ソースコード長 1724 Byte
最大実行時間 1012 ms
最大メモリ使用量 218212 KB

セット

セット 得点 Cases
1 ALL 4 / 4 *

テストケース

ファイル名 状態 実行時間 メモリ使用量 #
in01.txt AC 32 ms 604 KB
1
in02.txt AC 16 ms 636 KB
1
in03.txt AC 15 ms 556 KB
1
in04.txt AC 23 ms 460 KB
1
in05.txt AC 17 ms 684 KB
1
in06.txt AC 23 ms 1816 KB
1
in07.txt AC 25 ms 2048 KB
1
in08.txt AC 20 ms 1100 KB
1
in09.txt AC 21 ms 1176 KB
1
in10.txt AC 24 ms 1636 KB
1
in11.txt AC 456 ms 99060 KB
1
in12.txt AC 409 ms 124236 KB
1
in13.txt AC 635 ms 108972 KB
1
in14.txt AC 252 ms 32584 KB
1
in15.txt AC 378 ms 45764 KB
1
in16.txt AC 137 ms 21352 KB
1
in17.txt AC 693 ms 171872 KB
1
in18.txt AC 142 ms 11048 KB
1
in19.txt AC 366 ms 109400 KB
1
in20.txt AC 813 ms 146012 KB
1
in21.txt AC 504 ms 145780 KB
1
in22.txt AC 389 ms 65708 KB
1
in23.txt AC 629 ms 98608 KB
1
in24.txt AC 910 ms 176284 KB
1
in25.txt AC 658 ms 175648 KB
1
in26.txt AC 246 ms 63508 KB
1
in27.txt AC 615 ms 180580 KB
1
in28.txt AC 569 ms 152404 KB
1
in29.txt AC 485 ms 103064 KB
1
in30.txt AC 634 ms 167104 KB
1
in31.txt AC 714 ms 192576 KB
1
in32.txt AC 727 ms 195880 KB
1
in33.txt AC 728 ms 199316 KB
1
in34.txt AC 756 ms 202664 KB
1
in35.txt AC 960 ms 203668 KB
1
in36.txt AC 949 ms 198432 KB
1
in37.txt AC 1012 ms 199456 KB
1
in38.txt AC 954 ms 200604 KB
1
in39.txt AC 837 ms 180384 KB
1
in40.txt AC 947 ms 195264 KB
1
in41.txt AC 108 ms 31332 KB
1
in42.txt AC 122 ms 32300 KB
1
in43.txt AC 802 ms 216032 KB
1
in44.txt AC 846 ms 218212 KB
1
sample.txt AC 20 ms 37888 KB
1