The first question: K equals 1 or 2, very simple. Slightly. K more situations, http://www.cnblogs.com/lautsie/p/4242975.html, worth thinking about.
Question two: http://www.cnblogs.com/lautsie/p/4245242.html
BFS and DFS can, note that when writing, you can go to que a few things together, you do not have to set up objects. Blocked and visited can also be recorded directly using a two-dimensional matrix.
Pruning what, the most basic is to find the actual step limit of the case, the chessboard is bounded.
Question three: Http://apps.topcoder.com/wiki/display/tc/SRM+646#TheFootballDivTwo
Analysis is good, is to find out how the position will not change, let them win two games, and then find can let others win one. This is the allocation of the rest of the winning matches. Assigned to a team, after all, has fallen behind him, he divided two games to him.
[TopCoder] SRM 646 DIV 2