第一题:K等于1或者2,非常简单。略。K更多的情况,http://www.cnblogs.com/lautsie/p/4242975.html,值得思考。
第二题:http://www.cnblogs.com/lautsie/p/4245242.html
BFS和DFS都可以,注意的是,写的时候,可以往que里几个东西一起扔,就不用建立对象了。也可以直接用二维矩阵记录blocked和visited。
剪枝什么的,最基本的是发现其实在步数限制的情况下,棋盘就是有界的了。
第三题:http://apps.topcoder.com/wiki/display/tc/SRM+646#TheFootballDivTwo
分析很好,就是首先找到怎么比位置都不会变的,让他们赢两场,然后找到可以让别人赢一场的。这样就是剩下的胜利场次的分配了。分配给一个队后,反正已经落后他了,就分两场给他。