比赛 期末考试1 评测结果 WTWWTTTTTT
题目名称 Output Only 最终得分 0
用户昵称 赵飞羽 运行时间 7.886 s
代码语言 C++ 内存使用 5.50 MiB
提交时间 2026-02-08 09:17:13
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

const int N = 200010;
int n, k, q, c[N], u, v, cnt, ans;
int hd[N], ver[N], pre[N], idx;

void add(int x, int y) {
    ver[++idx] = y;
    pre[idx] = hd[x];
    hd[x] = idx;
}

void dfs(int x, int p) {
    if ((c[x] + p) % k) {
        p += k - c[x];
        ans++;
    }
    for (int i = hd[x]; i; i = pre[i]) {
        int y = ver[i];
        dfs(y, p);
    }
}

signed main() {
    freopen("tioj_outplay.in", "r", stdin);
    freopen("tioj_outplay.out", "w", stdout);
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
	cin >> n >> k >> q;
	for (int i = 1; i <= n; i++) cin >> c[i];
	for (int i = 1; i < n; i++) {
	    cin >> u >> v;
	    if (u == v - 1) cnt++;
	    add(u, v);
    }
    for (int i = 1; i <= q; i++) {
        cin >> u >> v;
        c[u] = v;
        ans = 0;
        dfs(1, 0);
        cout << ans << "\n";
    }
    return 0;
}
/*
5 4 4
1 0 1 2 3
1 2
1 3
3 4
3 5
2 1
1 0
3 2
1 2

*/