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

1435778 frkstyc 72K 15MS GCC 5965B ---- frkstyc大牛怎么做到这么快的?

Posted by alpc04 at 2006-08-07 17:38:12 on Problem 2936
In Reply To:剪枝方法大致见内 Posted by:alpc04 at 2006-08-07 17:32:52
> 根据输入字符串可得到一个a*b的活动区域 一般的这个区域要比6*6小
> 
> 因为棋盘的边框也可以看做wall 所以让活动区域贴着棋盘的角时可以得到最优
> 起始位置的枚举就是4次 远小于36次枚举
> 
> wall的枚举就在a*b的活动区域中进行就行
> 把wall之间的intersection和wall和input之间的cross剪枝掉
> 但有些wall的长度>max(a,b) 要再处理一下
> 
> 枚举出wall和startpoint之后把B题的代码cp过来做BFS 但因为B题本身就是Spj题目所以直接得到的序列可能和输入字符串不同 就会出错
> 这时不用再做类似spj的判断 把B题的代码改一下就好了--把输入字符串第i步的方向作为BFS第i层的优先方向先压入队列即可(有点估价函数的感觉)
> 
> 我就是这样剪枝的 G++ 93ms
> 应该还有更好的剪枝
> 大牛指教!

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