博弈
文章平均质量分 70
小酒窝.
研一菜鸡一只,欢迎来交流讨论,一起进步!
展开
-
CF - C. Number Game(思维,博弈)
一开始想的是,假设当前 Alice 要删掉 ≤ k 的数,她肯定会删掉剩下的数中小于等于 k 的最大的数,把较小的数剩下留着下面的轮次再删(因为下面轮次要删的数会更小)。然后就想,Bob 会阻止 Alice 执行 k 轮,那么 Bob 就要操作她下一轮能够删掉的数(小于等于 k-1 的最大的数),让她下一轮操作不了,那她就输。那么,如果 k 大于数列中 1 的个数 cnt 的话,所有的 1 都会被 Bob 搞掉,Alice 最后一轮无法操作,必输。,那么 Alice 最后无论如何都不能赢。原创 2022-10-21 23:50:15 · 550 阅读 · 2 评论 -
CF - C. Card Game(博弈,递推)
然后根据样例发现,平局的情况只有一种,两个人轮流分牌的情况,所以可以把 Alice 赢的所有方案求出来,用总方案数减去平局和Alice赢的方案数就是Bob赢的方案数。首先需要知道,一个玩家如果作为先手的话,一定会打出其拥有的最大牌,要么直接胜利,要么把对方更大的牌引出来,尽量保证自己下一局的安全。一共 n 张卡片,每张卡片上标有一个数字,标号从 1 到 n 各不相同,分给 Alice 和 Bob 各 n/2 张。问,最终在 Alice赢,Bob赢,平局 三种情况下,n 张卡片的分配方案各有多少?原创 2022-09-30 17:48:58 · 659 阅读 · 1 评论 -
CF - D. Letter Picking(博弈 + 区间dp)
因为是 Alice 先手,所以对于剩下的两个,Alice 先挑,肯定挑较小的那个,除非两个相同。即,对于一个大区间来说,如果不管 Alice 拿左右端点的哪个,Bob 拿过剩下区间左右端一个和其相同的字符之后,剩下的区间是平局,那么大区间就是平局。还是找必胜态或者必败态,在这道题中,不管你 Alice 操作哪一端,我 Bob 都有方式让剩下的区间是平局,那么这个大区间就是平局,这就是必胜态。初始化的时候,看长度为 2 的区间,如果是两个相同的字符,那么就是平局,赋值为 1;最后的结果是否是平局。原创 2022-09-29 21:26:57 · 778 阅读 · 0 评论 -
ICPC 22网络赛 - J A Game about Increasing Sequences(博弈)
对于一个数列来说,左右两端,如果删去了较大的一端元素,那么另一个人就不能再选另一端了,因为那个元素已经比删去的元素小了,他就只能跟着删这一端,直到不能删为止。所以,只要较大的一端往里能走奇数步,那么当前操作者就是必胜的。否则如果只能走偶数步的话,当前操作者就是必败的。很明显,对于一个操作者来说,如果发现较大的一端能走奇数步,那么必胜。否则没有办法,转过头来走较小的一端。先预处理出来每个位置最多往里走的步数,然后双指针往中间走。就这样一直走,直到存在必胜态了或者一个人无法操作了终止。原创 2022-09-27 15:38:07 · 404 阅读 · 0 评论 -
22牛客多校6 - Z-Game on grid(博弈,反推)
从后往前推只需要从最后一行到第一行,对于每一行从后往前即可,这样遍历到一个点时,其右边位置和下面位置都已经遍历确定过了。现在 Alice 想知道,自己是否在无论 Bob 如何操作的情况下都能 win?在 (1, 1) 位置上有一个棋子,Alice 和 Bob 轮流移动这个棋子,每次移动只能向右或者向下走一个单位。首先需要发现,如果一个格子的坐标之和为偶数的话,那么这个位置轮到 Alice 操作;否则 Bob 操作。从最右下角往前推,把所有的必胜点都推出来,如果发现起点是必胜点,那么就一定能得到想要的状态;原创 2022-09-06 17:29:20 · 231 阅读 · 0 评论