Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
P163PROJ - ROUND 3J - Cây đổi màu |
Cho một cây có n nút, đỉnh tại nút 1.
Bạn cần xử lý 2 truy vấn
- Thay đổi màu của toàn bộ nút con của cây con gốc v thành màu c
- Tìm số màu phân biệt trong cây con gốc v.
Input
Dòng đầu tiên gồm 2 số nguyên n, m (1 <= n, m <= 4.10^5) – Số nút của cây và số truy vấn.
Dòng thứ 2 chứa n số nguyên c[i] (1 <= i <= n, 1<= c[i] <= 60) là màu của nút i.
n – 1 dòng tiếp theo, mỗi dòng gồm 2 số nguyên x[i], y[i] (1 <= x[i], y[i] <= n) thể hiện nút x[i] nối với nút y[i].
m dòng cuối mô tả các truy vấn của bài toán. Mỗi mô tả bắt đầu bằng số nguyên t[k] (1 <= t[k] <= 2) – loại của truy vấn thứ k.
Với các truy vấn loại 1 tiếp theo sau sẽ là 2 số nguyên v[k], c[k] (1 <= v[k] <= n, 1 <= c[k] <= 60) thể hiện v[k] là nút mà cây con nhận nó làm gốc cần đổi mày thành màu c[k].
Với truy vấn loại 2 tiếp theo sau sẽ là số nguyên v[k] (1 <= v[k] <= n), thể hiện cho cần tính số màu khác nhau trong cây con nhận v[k] là gốc.
Output
Với mỗi truy vấn loại 2 in ra một số nguyên là câu trả lời tương ứng.
Mỗi câu trả lời được in ra trên một dòng riêng biệt và theo thứ tự các truy vấn.
Example
Input:7 10 1 1 1 1 1 1 1 1 2 1 3 1 4 3 5 3 6 3 7 1 3 2 2 1 1 4 3 2 1 1 2 5 2 1 1 6 4 2 1 2 2 2 3
1 6 42 12 22 3Output:2
3
4
5
1
2
Được gửi lên bởi: | adm |
Ngày: | 2016-03-01 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |