Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Đặt f(i, j) = độ dài dãy B lớn nhất, nếu 2 phần tử cuối là A(i) và A(j).
- Để tính f(i, j), ta xét các k < i mà A(j) = A(i) + A(k), rồi lấy f(k, i) + 1 cập nhật cho f(i, j).
- Giải thích: từ dãy B kết thúc ở k và i, ta có thể nới rộng dãy B thêm phần tử j.
- for(int i = 0; i < n; i++)
- for(int j = i+1; j < n; j++) {
- f[i][j] = 2;
- for(int k = 0; k < i; k++) {
- if (a[k] + a[i] == a[j])
- f[i][j] = max(f[i][j], f[k][i] + 1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement