Cho một đồ thị dạng cây gồm \(n\) đỉnh. Xét \(m\) đường đi với đỉnh xuất phát và kết thúc tương ứng là \(s_i, t_i\ (1 \le s_i \neq t_i \le n, 1 \le i \le m)\), gọi \(w_i\) là trọng số của đường đi thứ \(i\) được tính bằng tổng trọng số các cạnh trên đường đi. Nhiệm vụ của người chơi là gán trọng số các cạnh trên cây, mỗi cạnh gán giá trị bằng \(1\) hoặc \(2\) để \(w_1 \% 2 \le w_2 \% 2 \le \ldots \le w_m \% 2\).
Yêu cầu: Đếm số cách gán trọng số các cạnh thỏa mãn.
Input
- Dòng đầu chứa hai số nguyên \(n, m\ (n, m \ge 2)\).
- Dòng thứ hai gồm \(n - 1\) số mô tả cây, số thứ \(k\) là \(p_k\) cho biết đỉnh thứ \(k + 1\) nối với đỉnh \(p_k\ (1 \le p_k < k + 1)\).
- Tiếp theo là \(m\) dòng, mỗi dòng chứa hai số \(s_i, t_i\).
Output
- Gồm một dòng chứa một số nguyên \(r\) là số cách gán trọng số cho các cạnh chia dư cho \(10^9 + 7\).
Example
Test 1
Input
3 3
1 1
1 2
2 3
1 3
Output
2
Note
- Subtask \(1\): \(n, m \le 15\).
- Subtask \(2\): \(n, m \le 1500\).
- Subtask \(3\): \(n, m \le 300000\).
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.