Files
HuangHai 1f397eca87 'commit'
2025-08-30 18:35:01 +08:00

51 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

HDU4315 Climbing the Hill
https://blog.csdn.net/weixin_43596048/article/details/102726258
[题目传送门](https://acm.hdu.edu.cn/showproblem.php?pid=4315)
### 一、题意
在山上有$n$个人,每个人编号是$1$~$n$,这些位置**只能同时被一个人占据**,但是山顶可以同时被多个人占据,距离山顶第$k$近的是$King$,现在$Alice$和$Bob$开始向上送人,条件是不能跨越前面最近的人,问在$Alice$先手,双方最优的条件下谁能把$King$送到山顶获胜。
<center><img src='http://acm.hdu.edu.cn/data/images/C399-1006-1.jpg'></center>
### 二、解析过程
尼姆博弈变形。
#### $n$为偶数时:问题简化一下,假设全都是黄球,谁把最后一个球移出谁就赢
$(a_1,a_2) (a_3,a_4) …… (a_{2i-1},a_{2i}) ……(a_{n-1},a_n)$其中第$i$个球与第 $i+1$个球是**相邻**的,$i$为奇数,谁面对这个状态谁就必输。
理由很简单:先手移动第$i$个球,后手移动第 $i+1$ 个球,使之仍然保持必赢状态。
<font color='red'><b>黄海理解:按上面的说法,两两一组,组内视为奇数层台阶,$i+1-i-1$,也就是空格个数视为石子个数,这里都是$0$;组与组之间视为偶数层台阶,偶数层台阶的石子个数没有意义。</b></font>
$$ \LARGE 组内 \Leftrightarrow 奇数阶 \\
组间 \Leftrightarrow 偶数阶$$
回到原问题**谁先移出红球谁就赢**:
* 假设红球是第一个球:$Alice$直接就赢了
* 假设红球不是第一个球:
很显然,如果红球在偶数位置后手必赢,如果在奇数$i$位置,则只需将第$i-1$个球移到第一个位置就$ok$了。
所以与红球位置无关。
至于产生这个状态$\large (a_1,a_2) (a_3,a_4) …… (a_{2i-1},a_{2i}) ……(a_{n-1},a_n)$,那么就是简单的$Nim$问题了
#### $n$ 为奇数时,这里再分成两种情况。
当k!=2时把a1到最前边当成一个堆,剩下两两之间成堆,当k=2时,把a1-1当成一个堆,就是说第一个球移动到第一个位置(不是最前边),剩下的不变,。谁先面对这种状态就输了。
题意:在山上有n个人,每个人编号是1~n,这些位置只能同时被一个人占据,但是山顶可以同时被多个人占据,距离山顶第k近的是King,现在Alice和Bob开始向上送人,条件是不能跨越前面最近的人,问在Alice先手,双方最优的条件下谁能把King送到山顶。
这题分两种情况:
1,King在第一位的时候,Alice获胜 , 因为Alice先手可直接将King送到山顶。
2,King在第二位且人数n为奇数时,从后往前两两配对,那么第一个人最多只能停在a[1]上 , 因为如果第一个人爬到山顶,那么king就可以直接上山顶了,所以这题可以转化为 , 谁必须移动第一个人谁必败。
此时a[0] = 0; 例如 , a[1] = 2, a[0]=0 ,a[1]只能移动到1的位置 所以这个堆是a[0]-1,而如果King不在第二位的话 , 那么a[1]就可以直接移动到山顶了 , 这个时候就比King在第二位时的情况多出一个 , 因此令a[0] = -1 , 因为-(-1) 等于 +1.
TODO
https://www.cnblogs.com/Ritchie/p/5624945.html
https://www.cnblogs.com/AWCXV/p/7626724.html