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

这个题目的数据太弱了吧?用两种可能对立的方法都能ac?

Posted by queyue2004 at 2005-06-12 10:04:37 on Problem 1014
我是这样做的,dp + 缩小数据规模

用一个bool数组存放两人手中的石子的可能的差,一开始的时候可能的差为{0};
若此状态中有一个可能差为{....... ,a,...}那么取了一个价值为v的石子后集合变成
{....., a + v,a - v,.....}
如果 a - v < 0. a - v 变成 v - a.

然后我用两种不同的方法缩小数据规模,
一,当 a + v > 60  将 (a + v) % 60后放入集合 (bool数组)。

二,当a + v > 60 将 a + v不给予考虑。

最后判断集合中是否有0,也就是两人手中的价值相差0,
true  can 
false can't

这两种方法都AC了,
但是这些是有明显不同的,
第一种是认为 任何总和 60 价值的石子都可以分成两堆价值和为30的石子,因为取模了,所以可能导致
一些无法分割的情况输出可分割

第二种可以认为是种剪枝,认为当一种分配方案过程中,当一方手中的石子比另一方多60或者更多的话这
种方案明显不合理,去掉。如果这种方法错误的话,它可能丢掉一些可行解决。

但是两种方法都AC了,why?

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