| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
你可以对这两个方法测试一下,是不是所有数据解都一样的In Reply To:这个题目的数据太弱了吧?用两种可能对立的方法都能ac? Posted by:queyue2004 at 2005-06-12 10:04:37 其实这两个很可能是等价的
以前有一个证明的,可以缩小到6以内吧,好象
叫同学们帮忙看看吧,我没时间
> 我是这样做的,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: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator