Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

Đếm dãy con chung

Cho hai dãy số nguyên A và B có độ dài lần lượt là M và N chỉ chứa các số nguyên
dương không vượt quá 105 . Dãy con của một dãy số được tạo ra bằng cách xóa (hoặc
không xóa) một số phần tử có trong dãy ban đầu (có thể xóa hết tạo thành dãy rỗng).
Gọi i1 , i2 , ..., ik và j1 , j2 , ..., jk là hai dãy chỉ số tương ứng cho hai dãy con của dãy
A và dãy B. Hai dãy con Ai1 , Ai2 , ..., Aik và Bj1 , Bj2 , ..., Bjk được gọi là một cặp dãy con
chung nếu như thỏa mãn: Aix = Bjx với mọi x từ 1 đến k. Hai cặp dãy con chung của dãy
A và dãy B được xem là khác nhau nếu như tồn tại ít nhất một chỉ số ix hoặc jx sao cho
tồn tại ở cặp dãy này mà không tồn tại ở cặp dãy kia.
Yêu cầu: Bạn hãy xác định số lượng các cặp dãy con chung khác nhau có thể tạo ra.
Dữ liệu vào: Từ tệp văn bản CSCOUNT.INP gồm:
 Dòng thứ nhất ghi hai số nguyên dương M, N.
 Dòng thứ hai ghi M số nguyên A1 , A2 , ..., AM (1 ≤ Ai ≤ 105 ).
 Dòng thứ ba ghi N số nguyên B1 , B2 , ..., BN (1 ≤ Bj ≤ 105 ).
Kết quả: Đưa ra tệp văn bản CSCOUNT.OUT một số nguyên duy nhất là phần dư số
lượng cặp dãy con chung khác nhau có thể tạo ra khi chia cho modulo 109 + 7.
Ví dụ:
CSCOUNT.INP CSCOUNT.OUT
3 3 4
1 2 3
1 1 1
2 2 6
1 1
1 1
5 3 12
1 2 3 1 2
3 1 2
Giải thích:
Ở test ví dụ 1, ta có 1 cặp dãy con chung {} và 3 cặp dãy con chung {1}. Tổng có 1 + 3
= 4 cặp dãy con chung
Ở test ví dụ 2, ta có 1 cặp dãy con chung {}, 4 cặp dãy con chung {1} và 1 cặp dãy con
chung {1, 1}. Tổng có 1 + 4 + 1 = 6 cặp dãy con chung.
Ở test ví dụ 3, ta có 1 cặp dãy con chưng {}, ta có 2 cặp dãy con chung {1}, 2 cặp dãy
con chung {2}, 1 cặp dãy con chung {3}, 3 cặp dãy con chung {1, 2}, 1 cặp dãy con
chung {3, 1}, 1 cặp dãy con chung {3, 2} và 1 cặp dãy con chung {3, 1, 2}. Tổng có 1
+ 2 + 2 + 1 + 3 + 1 + 1 + 1 = 12 cặp dãy con chung.
Ràng buộc:
 Subtask 1 (70% số điểm): N × M ≤ 2000.
 Subtask 2 (30% số điểm): N, M ≤ 2000.

You might also like