PreVOI 2026 - Orterees
Xem dạng PDF
Gửi bài giải
Điểm:
60,00 (OI)
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
1G
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT
Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Cho một cây có ~n~ (~n \le 50000~) đỉnh, mỗi đỉnh có ghi một giá trị không âm ~a_i~ (~a_i \le 255~). Các đỉnh được đánh số từ 1 đến ~n~. Đỉnh số 1 là gốc.
Yêu cầu: Cho ~q~ truy vấn có dạng ~x, i~ (~i \le n, x \le 255~). Với mỗi truy vấn, hãy đếm số lượng đường đi đi qua đỉnh ~i~ mà phép toán OR của các giá trị ghi trên các đỉnh thuộc đường đi đó bằng ~x~.
Input
- Dòng đầu tiên ghi 2 số ~n~ và ~q~.
- Dòng thứ 2 ghi ~n~ số nguyên không âm ~a_1, a_2, \dots, a_n~.
- Dòng thứ 3 mô tả cây ghi ~n-1~ số nguyên ~b_2, b_3, \dots, b_n~ với số ~b_i~ là số thứ tự của đỉnh là cha của nút ~i~ (~b_i < i~).
- Mỗi dòng trong ~q~ dòng tiếp theo ghi một truy vấn, có dạng ~x, i~.
Output
- Với mỗi truy vấn, ghi ra trên một dòng kết quả tìm được.
Sample Input 1
3 3
1 2 3
1 2
3 1
2 2
3 3
Sample Output 1
2
1
3
Bình luận