ICode9

精准搜索请尝试: 精确搜索
  • [题解]轮流拿牌问题_一道博弈论笔试题(C++)2022-08-23 12:32:14

    题目 A和B轮流从一个数组左右两端取数,A先B后,每次取一个数,最终取数总和大者获胜,两人每次都会选择最有利的策略,求获胜者取数的和。 思路 笔试时遇到的一道算法题,也是博弈论中非常经典的入门题目了。从先后手的角度考虑,先手在行动一次后获得左右两端数中的一个,然后转换为后手;而后手在

  • 2022牛客暑假第七场C、F、J、K2022-08-15 20:34:30

    C-Constructive Problems Never Die_"蔚来杯"2022牛客暑期多校训练营7 (nowcoder.com) 容易知道,只要A中的数不是全部相同,就一定有解。 我们思考如何构造: 如果A中的数是一个排列,即其中的数两两不相同,最好的方法是把整个排列往右边错开一位。 因此可以找到A中每个数出现的第一个位

  • HDU1580 输出先手能取的方案数2022-07-29 17:34:53

    HDU1580 输出先手能取的方案数 题目 Being a Good Boy in Spring Festival 下面是一个二人小游戏:桌子上有M堆扑克牌;每堆牌的数量分别为Ni(i=1…M);两人轮流进行;每走一步可以任意选择一堆并取走其中的任意张牌;桌子上的扑克全部取光,则游戏结束;最后一次取牌的人为胜者。 现在我们不想

  • CodeForces 1190C Tokitsukaze and Duel2022-07-21 20:01:06

    洛谷传送门 CodeForces 传送门 一道不错的博弈论。 思路 此题的关键性质在于:一方可以重复另一方上一次的操作从而使得局面不变。 因此有结论:先手必胜当且仅当先手第一步就取胜,后手必胜当且仅当先手无法在第一步就取胜且无论先手如何操作后手都能一步胜利。 可以这么理解。若先手第

  • P8347-「Wdoi-6」另一侧的月【博弈论,结论】2022-06-14 22:00:46

    正题 题目链接:https://www.luogu.com.cn/problem/P8347 题目大意 给出一棵树,两个人轮流操作。 操作者可以选择一个点删除,然后选择一个剩下的连通块,删除其他连通块。 操作完成后只剩下一个点的人失败,求是否先手必败。 \(1\leq T\leq 5,1\leq n\leq 10^5\) 解题思路 考虑如果存在

  • 2022年简短题解2022-03-20 08:02:13

    arc137_c 如果最大值和次大值的差 \(\ge 2\),那么先手就必胜,因为她可以通过移动最大值选择从必败局面转到必胜局面,可以从必胜局面转到必败局面。 否则,每次操作者一定会让最大值与次大值的差 \(=1\)(否则对手下一步必胜),即让最大值 \(-1\)。 最大值会从 \(a[n]\) 减到 \(n-1\),只要判断

  • 【NOI2022省选挑战赛 Contest4 B】取石子(博弈论)2022-03-01 19:33:54

    取石子 题目链接:NOI2022省选挑战赛 Contest4 B 题目大意 给你一个序列,两个人轮流选头部或尾部拿走那个数,然后双方都要使得自己拿到的数的和尽可能大。 然后问你先手能有的最大和。 思路 首先看到第三个部分分,是一个山谷的形式。 那我们肯定是每次都选两半之间最大的,亦或者是说每次

  • 【NOI2022省选挑战赛 Contest3 C】取石子(博弈论)(结论)2022-03-01 15:03:54

    取石子 题目链接:NOI2022省选挑战赛 Contest3 C 题目大意 给你一个序列,两个人轮流操作每次可以拿走序列两头的其中一个数。 然后谁选的数的异或和大谁就赢。 然后每次问你先手必胜还是后手必胜还是平局。 思路 首先异或嘛,肯定是按位数从高到低看。 那不难想出如果对于一位它在偶数

  • Anti-Nim博弈原理与证明2022-02-20 11:03:55

    简介 Anti-Nim博弈是Nim博弈的变形,它的定义是: 给定 \(n\) 堆物品,第 \(i\) 堆物品有 \(A_i\) 个,两人轮流取,每次可以任选一堆取走任意多个物品,可以取光但不能不取,最后把物品全部取完者失败 判断先手是否有必胜策略 推理 先手必胜当且仅当: 每堆的物品数都为 \(1\) 且Nim和为 \(0\)

  • 「博弈论 」学习记录2022-02-08 21:01:40

    CF48E Ivan the Fool VS Gorynych the Dragon Gorynych 有 \(H\) 个头,\(T\)条尾巴,每次 Ivan 可以砍掉 \(0\) 到 \(N\) 个头或者 \(0\) 到 \(M\) 条尾巴,但是每当 Ivan 砍掉 Gorynych 的头或者尾巴时,总有一些新头和新尾巴长出来。 如果 Gorynych 的头和尾巴数量之和超过给定的数字

  • AGC0052022-02-08 10:32:54

    A 模拟。 B 从小到大枚举。 C \((\texttt{Easy} \ 2 / 0)\) 考虑找出最大的 \(a_i\) 作为直径,然后在上面挂点。 设 \(m = \max a_i\),我们由此可以得出有解的充要条件: 能找出 \(m + 1\) 个点构成直径。 剩下的点 \(i\) 需要满足 \(a_i > \left\lceil\frac{m}{2}\right\rceil\)。

  • leetcode 石子游戏 IX2022-01-27 14:04:03

    题目链接 思路:分析+举例 分析:首先,看懂题目规则,谁选完后,已经被选了的数目被3整除,谁就输了,并且都选完,还是不能被3整除,先手也输了。 这里要注意的是,输赢和总数究竟是多少无关,而与这个总数是不是3的倍数有关,所以stones数组中的每个数究竟是多少我们不用管,而需要关心的是,每个数模3

  • Leetcode 292. Nim 游戏2022-01-27 09:35:37

    题目重述 你和你的朋友,两个人一起玩 Nim 游戏: 桌子上有一堆石头。 你们轮流进行自己的回合, 你作为先手 。 每一回合,轮到的人拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。 假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢

  • 取石子游戏(c++)2022-01-17 20:30:14

    题目:有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的

  • The 16-th BIT Campus Programming Contest - Online Round--Easy Nim2022-01-12 11:59:28

    Problem - C - Codeforceshttps://codeforces.com/gym/103401/problem/C题目大意为每人每轮最多拿m张牌,谁先取完n张牌谁胜;后手有k张魔法牌,每张魔法牌上写有数字(这里把数字放在c数组里)可以将修改上限变为牌上的数字,发动魔法牌时不能取牌。 拿牌(取石子游戏)有一个必胜策略是将n张牌

  • [BZOJ3895]取石子2021-12-23 22:34:34

    取石子 题解 在笔者写这篇题解之前,你可以发现,网上大部分流行的解法都是 O ( n ∑ a

  • CF388C-Fox and Card Game【博弈论,结论】2021-10-14 18:33:32

    正题 题目链接:https://www.luogu.com.cn/problem/CF388C 题目大意 有\(n\)堆卡片,第\(i\)堆有\(s_i\)张,给出每张卡的权值。现在先手选择一堆取走堆底的牌,然后后手选择一堆取走堆顶的牌,直到所有牌被取走。在双方都要求最大化取走的牌的权值的情况下求先后手的权值。 \(1\leq n,s_i

  • SG函数2021-09-20 07:02:17

    这个也是因为做题用到了才学会的 就是在某种取石子的游戏中,我先手是有必胜和必输两种情况的(当然这个游戏可以用各种变形) 具体是通过SG函数来判断的 首先有一个结论:当所有堆的石子的SG函数值异或起来得到的值是0的时候先手必输 这个好证,当所有堆的石子都空了的时候就是0,我一步转移

  • leetcode:292.Nim游戏2021-09-19 00:02:26

    题目 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/nim-game 你和你的朋友,两个人一起玩 Nim 游戏: 桌子上有一堆石头。 你们轮流进行自己的回合,你作为先手。 每一回合,轮到的人拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。 假设你们每一步都是最优解。请

  • 关于博弈(知识点的总结)2021-09-18 16:02:09

    Nim 博弈 可以证明当 \(a_1\oplus a_2 ... \oplus\ a_n=0\) 时,后手必赢。 否则先手必赢。证明略。 阶梯博弈 可以证明当 \(a_1\oplus a_3 \oplus\ a_5 ...=0\) 时,后手必赢。 否则先手必赢。证明略。 Pro:此题单向移动是可以的,双向的话似乎也可以? 一些限制相邻什么的问题可以转化成

  • Codeforces Round #721 (Div. 2)2021-09-17 02:32:51

    Codeforces Round #721 (Div. 2)  来源:https://codeforces.com/contest/1527   A. And Then There Were K 不妨打一个表看看有没有什么规律.   发现每个数字 $\mathrm{x}$ 的答案是 $\mathrm{x}$ 二进制展开中最高次位减一.     直接对每个数 $O( \log n) $ 扫一下即可. 

  • 基本数据类型:巴什博奕2021-09-12 12:02:47

    描述 你正在和朋友玩一个游戏:桌子上有一堆石头,每一次你们都会从中拿出1到3个石头。拿走最后一个石头的人赢得游戏。游戏开始时,你是先手。 假设两个人都绝对理性,都会做出最优决策。给定石头的数量,判断你是否会赢得比赛。 举例:有四个石头,那么你永远不会赢得游戏。不管拿几个,最

  • 博弈论:Nim游戏2021-08-04 19:00:40

    目录博弈论:Nim游戏Nim游戏内容概念必胜态必败态基本的局面只存在一堆(局面一)数量相同的两堆(局面二)进击的局面数量不同的两堆(局面三)结论题目集模板题AcWing 891. Nim游戏AcWing 892.台阶-Nim游戏基本的局面只有第一级台阶拥有石子(局面一)只有第二级台阶拥有石子(其实可认为是全部台阶

  • Codeforces Round #726 (Div. 2) D题解2021-06-21 03:33:19

    传送门 题意 \(Alice\)和\(Bob\)在玩游戏。 他们从一个正整数\(n\)开始轮流对它进行运算。每个回合,玩家可以从\(n\)中减去一个非\(1\)或\(n\)的因数。在他/她的回合中不能移动的玩家输。\(Alice\)总是先动。 注意,他们在每个回合中都要减去当前数字的除数。 你被要求找出如果两名玩

  • LeetCode每日一题-2021-06-15-877. 石子游戏-486. 预测赢家2021-06-16 22:05:00

    博弈论问题,衡为true,我猜的 如果是偶数确实先手必赢,现在考虑更为普适的奇偶都有的情况 这类题型为区间DP或者双人博弈 状态与子问题 dp[i][j]: 定义为两个玩家对弈,即先手后手对弈,对弈区间为scores[i:j],在区间上两个人的最大分数差(先手总分数-后手总分数),易判断i一定得小于等于

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有