Your best bet for improving your problem solving is not reading books, but just doing lots of practice programs.
https://codegolf.stackexchange.com/ is a site you can look at.
These books will give you a large list of problems that if you get one of them and work through it you will be in a good mindset for problem solving (These books are not free):
http://acm.hit.edu.cn/judge/ProblemIndex.php (Massive list of
questions).
It is very hard to learn how to problem solve just from a book, as all people think differently. Try doing questions for fun and you will learn to problem solve.
Your best bet for improving your problem solving is not reading books, but just doing lots of practice programs.
https://codegolf.stackexchange.com/ is a site you can look at.
These books will give you a large list of problems that if you get one of them and work through it you will be in a good mindset for problem solving (These books are not free):
http://www.amazon.com/dp/1453792996/?tag=stackoverfl08-20
http://www.amazon.com/dp/145157827X/?tag=stackoverfl08-20
http://www.amazon.com/dp/0387001638/?tag=stackoverfl08-20
Some free sites:
It is very hard to learn how to problem solve just from a book, as all people think differently. Try doing questions for fun and you will learn to problem solve.