Trại hè Hùng Vương 2023 - Đếm dãy

Xem dạng PDF

Gửi bài giải


Điểm: 35,00 (OI)
Giới hạn thời gian: 1.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 ~3~ số nguyên dương ~N, K, M~ và ~M~ bộ tham số: ~(l_1, r_1, v_1), (l_2, r_2, v_2), ..., (l_M, r_M, v_M)~.

Đếm số lượng dãy ~A~ khác nhau, gồm ~N~ phần tử số nguyên thỏa mãn:

  • ~0 \le A[j] < 2^K~ với mọi ~1 \le j \le N~.
  • Với mỗi ~1 \le i \le M~ thì ~A[l_i] \text{ AND } A[l_i+1] \text{ AND } \dots \text{ AND } A[r_i] = v_i~. Trong đó ~\&~ là ký hiệu toán tử ~AND~.

Input

  • Dòng đầu tiên gồm ba số nguyên ~N, K, M~ (~N \le 10^5, K \le 30, M \le 10^5~).
  • ~M~ dòng tiếp theo, dòng thứ ~i~ là bộ ba số ~l_i, r_i~ và ~v_i~ (~1 \le l_i \le r_i \le N; 0 \le v_i < 2^K~).

Output

  • Gồm một dòng duy nhất là kết quả bài toán khi lấy phần dư khi chia cho ~1000000007~. Hai dãy ~A~ và ~B~ được coi là khác nhau nếu tồn tại một vị trí ~i~ (~1 \le i \le N~) mà ~A_i \ne B_i~.

Sample Input 1

4 2 2
1 3 2
3 4 1

Sample Output 1

3

Giải thích ví dụ

Có ~3~ dãy thỏa mãn là ~\{2, 2, 3, 1\}, \{2, 3, 3, 1\}, \{3, 2, 3, 1\}~.

Subtasks

Subtask Điểm Ràng buộc
1 ~15~ ~M, N \le 10; K \le 2~.
2 ~15~ ~M, N \le 1000~ và ~ \forall i: 1 \le i < M~ thì ~r_i < l_{i+1}~.
3 ~20~ ~K = 1; N, M \le 1000~.
4 ~20~ ~M, N \le 1000~.
5 ~30~ Không có điều kiện gì thêm.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.