If the same paper had many contributions in many fields, can I cite each contribution separately?
Yes
If a paper provides such information that it can be used for several paragraphs - then absolutely you can, and you actually should, cite the useful paper whenever and wherever you use the information from within the paper (in your case, the algorithms with their enhancements).
Yes. You should cite a paper every time you talk about it (unless you talk about it multiple times in rapid succession and it's clear that you're still refering to the same thing). There is no "rule" that says you can only refer to a paper once.