回溯算法适合解决什么问题