Decent people want to help others in need. How can you identify who is truly needy and will use your dollar for improvement, as opposed to buying drugs?
Call one true beggar and one deceptive beggar. Giving $1 to deceptive beggar means he gets more drugs, while true beggar goes without. You get a good feeling, but the outcome hurts others -- very similar to the definition of "selfish."
If one in four are true, while the other three are deceptive, then you would have to give four times the intended donation and be willing to hurt three other people in order to help one.
However, if you try to estimate need based on external clues then it may encourage victimhood or "looking needy" on purpose. It seems the best solution is to have someone who knows the most about the beggars allocate the funding. This is probably neither you nor faceless government. It is a local charity.