Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
此题不能恶搞,对剪枝要求较高注意到:最后一行和最后一列的数都是奇数,第一行和第一列中不能含有0。 先用筛选法把5位的素数找出来,并按首个数字分别存到9(1--9)个槽里。 按这样的策略搜索: 先枚举最后一列,这里的约束较多(第个数都是奇数)。 然后枚举第一列,这个约束还是不错的(不能含有0,第一个数字己确定)。 你可能觉得已经不错了,每一行都有两个约束了。 但是两个对角线却提供了更多的方便。 枚举第一个对角线,再枚举第二个对角线。 现在应该到搜索每一行了。 容易看到,第二行和第四行的约束条件较多(有四个),先选定这两行, 再枚举第三行,这有三个约束条件。 然后是第一行。 最后一行就不用枚举了,可以算出来的。 之后再检查一遍是否满足这种要求。 最好就不要存储整型的数了,上面的素数都转换为字符串存好,这可以省掉中间乘法和除法的时间。控制还是挺复杂的,写代码要小心哦。 这样交的代码就能达到230多毫秒了。 努力。 Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator