这题直接搜就行了,不过要注意搜索顺序,这里如果选的不好的话,那么基本就不可能过了,一开始我选的是先确定第一行再确定反对角线,然后再依次确定第二行,第三行和第四行,再确定第2列最后确定最后一行,这样的顺序我主要是考虑可以比较好的算出一些东西,也就是可以少算一点东西[因为一开始我是用的最原始的一行一行的搜索],可是这样不行,发现会死在第4组数据上,给的是2s我的用了2.67s.无奈之下搜了解题报告,原来可以先确定两条对角线,因为它们两影响的最多,我们把最复杂的先做了,那么剪枝也可以在一开始就实现,这样可以节约不少时间,这样之后就过了,后来的搜索顺序是先对角线—>反对角线—->第一行—->第二列—>第四列[这里可以顺便算出第五行]—>第一列[这里可以顺便算出第三行的第五个]—>第二行[剩下的都可以顺便算出来了]代码写了250+行,就不在这里贴了,放在这里,有兴趣的可以看看.另外官方的解题报告和这个差不多,不过还多加了一个用对称来减少搜索的时间,官方的解题报告传在这里,有兴趣的可以下来看看

Comments

2011-03-06