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 fjnplx at 2013-02-26 19:50:42 on Problem 1011
使用这种方法编程个人认为更有助于提高程序可读性。。

为助于理解,以下称题目所给数据为“小木片”长度,所求数值为“小木棒”长度。

同样也是qsort从大到小排序木片,再依次尝试小木棒长度值i。
令可能的最小小木棒长度为i,for(i = max; i < sum; i++)递归,递归之中:

定义消息:
enum{SUCCEED, ABORT, CONTINUE, ROLLBACK, NEXT, CNGSTK};
含义如下:
SUCCEED 成功拼完所有小木棒(得到最终的i)
ABORT   跳出(未使用)
CONTINUE继续此轮(i++)。用于匹配到一个小木片的时候
ROLLBACK返回上一级递归。用于此轮尝试过所有小木片,但全部失配的时候
NEXT    继续此轮并跳到下一个非当前长度的木片(i+=一定值)。用于未匹配到当前小木片的时候
CNGSTK  刚完成一个小木棒

详细分析起来总共可以有10处剪枝,使用前9处剪枝可以POJ AC,使用10处剪枝可以跑BT的64数据(但不保证正确。。)
代码在回复中,欢迎参考。

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