Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

此题不能恶搞,对剪枝要求较高

Posted by keeng2008 at 2008-04-18 00:00:33 on Problem 1165 and last updated at 2008-04-18 00:02:31
注意到:最后一行和最后一列的数都是奇数,第一行和第一列中不能含有0。

先用筛选法把5位的素数找出来,并按首个数字分别存到9(1--9)个槽里。
按这样的策略搜索:

先枚举最后一列,这里的约束较多(第个数都是奇数)。
然后枚举第一列,这个约束还是不错的(不能含有0,第一个数字己确定)。
你可能觉得已经不错了,每一行都有两个约束了。
但是两个对角线却提供了更多的方便。
枚举第一个对角线,再枚举第二个对角线。

现在应该到搜索每一行了。
容易看到,第二行和第四行的约束条件较多(有四个),先选定这两行,
再枚举第三行,这有三个约束条件。
然后是第一行。

最后一行就不用枚举了,可以算出来的。
之后再检查一遍是否满足这种要求。

最好就不要存储整型的数了,上面的素数都转换为字符串存好,这可以省掉中间乘法和除法的时间。控制还是挺复杂的,写代码要小心哦。
这样交的代码就能达到230多毫秒了。
努力。

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator