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

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

Posted by Acsaga at 2008-04-21 15:07:56 on Problem 1165
In Reply To:此题不能恶搞,对剪枝要求较高 Posted by:keeng2008 at 2008-04-18 00:00:33
我的方法是

把5位素数找出来,按照首个字母分别存在1-9的槽里。
并且开一个int hash[],把这些所有素数,和素数的前缀设成true。
比如有一个数11351,那么hash[1] hash[11] hash[113] hash[1135] hash[11351]都是true。
然后根据输入枚举第一行的数。
在第一行的数确定的前提下,通过dfs依次枚举第一列,第二列,第三列,第四列,第五列。。。
在枚举列的过程中,得到的对应行的中间结果,正好是这一行的最终结果的前缀。所以可以用上面提到的hash来剪枝。同理主对角线也是先得到的前缀,可以用hash剪枝。

也是230ms过的-_-

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