# HD Số 0 tận cùng lqdoj/lastzerohsg
> Trần Hữu Nam - 24/1/2023
Trong các cách chọn i số mà tổng các thừa số 5 là j thì ta chọn cách có số thừa số 2 nhiều nhất, gọi số thừa số 2 nhiều nhất đó là F[i][j].
Ban đầu, F[i][j]=0 hết.
Gọi P2[i], P5[i] lần lượt là số thừa số 2 và số thừa số 5 trong A[i].
Với mỗi số A[x], ta xem thử nó có tham gia vào việc chọn i số để có tổng thừa số 5 là j hay không:
F[i][j]=max(F[i][j], F[i-1][j-P5[x]]+P2[x]);
Cách tính F[i][j]:
* Fill mảng F[][]=0 hết;
* Với mỗi x chạy từ 1 đến n:
* Với mỗi i chạy lùi từ k về 1:
* Với mỗi j chạy từ 0 đến M5:
* F[i][j]=max(F[i][j], F[i-1][j-P5[x]]+P2[x]);
Cách tìm đáp án:
* kq=0;
* Với mỗi j chạy từ 0 đến M5:
* T=min(j, F[k][j]);
* kq=max(kq, T);
* Viết kq;
Với M5 = sum(P5[1..n])
{%hackmd AfkxoUIBRFKjyvpLo0GIFg %}
[.](https://www.geeksforgeeks.org/maximum-number-of-trailing-zeros-in-the-product-of-the-subsets-of-size-k/)
[Code c++ #1](https://hackmd.io/@hoclentop/HJqwCwH2i)