现在的位置: 首页 > 综合 > 正文

2012 Multi-University Training Contest 9[hdu4380~4389]

2013年10月11日 ⁄ 综合 ⁄ 共 780字 ⁄ 字号 评论关闭

hdu 4386 Quadrilateral

公式 或三分法枚举任意2边为临边的对角线。

hdu 4388 Stone Game II 博弈 , 很好的题

比赛的时候由于4387卡住了, 而且4388的操作又太复杂, 所以没太仔细去分析题目的本质,

题目大致的意思是初始n堆石子 没人轮流选一堆石子进行操作, 该堆石子的总数设为a, 要求拿走一定数量的石子, 使其剩余k个, 并且k<a 且 k^a<a, 之后在增加一堆石子为k^a,最先不能为者负。

首先分析每次操作的变化的本质, 一个a堆的石子变成了 k和k^a 且 这两堆都小于a ,所以我们可以得到一个结论, 分开后的两堆, 在二进制下含1个数的奇偶性是不变的;

且除了1人且一次的特殊操作, 2个堆的个数都在减少, 而且当剩余每堆都为2的次方时游戏就可以结束了, 因此游戏是可终止的。(后面给出简易证明)

分析:

先分析只有一堆的情况

由于是异或操作不妨写成二进制 ,

eg . a= 1010

满足条件的k:1000, 0010,,0011, 1100……

对应的k^a   : 0010, 1000,1001, 0110……

其中前两种分解后对方就处于必败态,故可知a是必胜态 ,可以猜想a中1的个数为偶数时, 先手必胜

对于第三种分解,此时的先手只能选择将1100或0110分解, 因此仍是必败态,前状态的先手还是必胜态, 故这种分解是不影响结果的平衡状态操作。 

故影响胜负的操作是使a分成2个1的个数和与a相等的操作。

异或操作保证了 a变成k和k^a后1的个数的奇偶性是不变的。

题意的转化:对于原石子的a1, a2, a3……用其含1的个数代替, b1, b2, b3,……每次选择一个bi将其分解为2个大于0的数, 最先不能为者负, 这就转化成我们熟悉的模型了, 只需考虑总堆数和sum(bi)的奇偶性就可以了。

结论, 有n个数, 设cnt为所有数在二进制下1的总个数, n+cnt为奇数时,先手胜, 否则为负

代码不贴了。。。

抱歉!评论已关闭.