Dãy con chung bội hai dài nhất
Đề bài
Mô tả
Dãy được gọi là dãy con của dãy nếu có thể nhận được bằng cách xóa bớt một số phần tử của dãy và giữ nguyên thứ tự của các phần tử còn lại, nghĩa là tìm được dãy các chỉ số sao cho . Ta gọi độ dài của dãy là số phần tử của dãy.
Cho hai dãy và . Dãy được gọi là dãy con chung bội hai của dãy và nếu vừa là dãy con của dãy , vừa là dãy con của dãy và thỏa mãn điều kiện ().
Yêu cầu: Cho hai dãy và . Hãy tìm độ dài dãy con chung bội hai có độ dài lớn nhất của hai dãy và .
Dữ liệu vào
Dòng đầu tiên chứa là số lượng bộ dữ liệu. Tiếp đến là nhóm dòng, mỗi nhóm cho thông tin về một bộ dữ liệu theo khuôn dạng sau:
- Dòng đầu chứa số nguyên dương và .
- Dòng thứ hai chứa số nguyên không âm , mỗi số không vượt quá .
- Dòng thứ ba chứa số nguyên không âm , mỗi số không vượt quá .
Các số trên cùng một dòng được ghi cách nhau ít nhất một dấu cách.
Dữ liệu ra
In ra dòng, mỗi dòng ghi một số nguyên là độ dài dãy con chung bội hai dài nhất của dãy và tương ứng với bộ dữ liệu vào (in nếu hai dãy không có phần tử chung).
Ràng buộc
- .
- .
- .
Subtasks
- Subtask 1 ( số điểm): .
- Subtask 2 ( số điểm): .
- Subtask 3 ( số điểm): .
Mỗi subtask gồm nhiều test, mỗi test được chấm điểm riêng.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 1 5 5 5 1 6 10 20 1 8 6 10 20 |
3 | Dãy là dãy con của cả hai dãy và , . |
| 2 4 5 0 0 3 7 0 3 0 6 7 3 3 4 2 1 1 2 4 |
3 1 |
Bộ thứ nhất: hoặc (vì , số có thể lặp lại). Bộ thứ hai: hai dãy có thứ tự ngược nhau nên chỉ chọn được một phần tử. |
Bình luận