当前位置: 首页 > news >正文

我真的博了

其实标题指的是博弈论。

[AGC002E] Candy Piles

桌子上有 \(N\) 堆糖果。每堆糖果有 \(a_i\) 颗糖果。

Snuke 和 Ciel 正在玩游戏。他们轮流走。Snuke 先走。在每个回合中,当前玩家必须执行以下两个操作之一:

  • 选择剩余糖果数量最多的一堆,然后吃掉那堆糖果中的所有糖果。
  • 从每堆剩下的一颗或多颗糖果中,吃一颗糖果。

吃了桌上最后一块糖的玩家输掉了比赛。确定如果两个玩家都以最佳方式玩游戏,哪个玩家会赢。

sol

牛逼题目。

你可以先把石子的个数从大到小排序,如下图。

转化成网格图就是

image

那么上面的实线就是必败点,我们相当于每次往右走或者往上走 (相当于吃一堆或者全部吃一颗)。

那么向上走和向右走都是必败点的点就是必胜点,反之就是必败点,画出来长这样(O 为必败):

注意到一个对角线都是一样的,所以我们直接找到一个最大的正方形使得其够不着边界。

然后直接设其右上方顶点为 (i,i) 。当它到最上面且不在边界上的点的距离和最右面且不在边界上的点的距离其中一个为奇数时,这个点为必败点,反之这个点为必胜点。

CF794E Choosing Carrot

下个月就是奶牛Z的生日啦,为了给奶牛Z购买生日礼物,奶牛A和奶牛B决定去挑选奶牛Z最喜欢的青草来作为送给奶牛Z的生日礼物。
现在,奶牛A和奶牛B买来了n堆青草,从左数起,第i堆青草的甜度为ai。奶牛A认为奶牛Z喜欢甜的青草,而奶牛B认为奶牛Z喜欢不甜的青草。因此,奶牛A希望选出来的青草是最甜的,奶牛B希望选出来的是最不甜的青草。
为了解决这个问题,奶牛A与奶牛B决定玩一个游戏,他们俩每次可以从两端的青草开始,选择其中一堆并把这一堆青草吃掉,最后剩下的那一堆青草就是送给奶牛Z的生日礼物,奶牛A先开始吃。
在玩游戏之前,奶牛B去上了一次厕所,奶牛A乘机进行了K次操作,每次操作也是按照要求从这些草堆当中,选择两端的草堆并吃掉其中一堆。在奶牛B回来之后,同样也是奶牛A先开始吃。
奶牛A想知道,对于每一个K(0≤K≤n-1),最后送给奶牛Z的青草甜度分别是多少?

sol

最简单。

讨论 \(k=0\) 的情况:

\(mid=(n+1)/2\)

奇数的答案是 \(\max(\min(a_{mid},a_{mid-1}),\min(a_{mid},a_{mid+1}))\)

偶数的答案是 \(\max(a_{mid},a_{mid-1})\)

然后对于这个 \(k\) 的不同,相当于就是把区间增长了,反正写个 st 表当 rmq 做就行了。

[ARC116F] Deque Game

给定 \(K\) 个数列。第 \(i\) 个数列 \(A_i\) 的长度为 \(N_i\)

高桥君和青木君将用这些数列进行游戏。直到所有数列都变为长度 \(1\),高桥君和青木君轮流进行以下操作:

  • 选择一个长度至少为 \(2\) 的数列,删除其第一个元素或最后一个元素。

高桥君先手。高桥君希望最大化最后剩下的 \(K\) 个元素的总和,青木君则希望最小化该总和。

当双方都采取最优策略时,请输出最后剩下的 \(K\) 个元素的总和。

sol

困难至极。

发现当 \(k=1\) 时跟上面的是一样的,所以奇偶数的讨论可以直接扔过来。

当这个队列长度为奇数时,且先手先手时,答案是 \(\min(\max(a_{mid},a_{mid-1}),a_{mid}) \leq a_{mid}\)

当这个队列长度为奇数时,且先手后手时,答案是 \(\max(\min(a_{mid},a_{mid-1}),a_{mid}) \geq a_{mid}\)

所以在这个奇数的情况下先手更优一点。

然后你考虑偶数的情况,偶数是先手更优一些。

所以他们两个会优先把偶数给吃完,然后再吃奇数。

但是偶数每吃掉一个会导致先后手置换,所以你需要按照这个的 先手答案 - 后手答案排序去吃,这样一定是最优的。

然后你再去吃奇数,这个不会换先后手顺序,直接算就好了。

[AGC010D] Decrementing

黑板上写有 \(N\) 个整数。第 \(i\) 个整数为 \(A_i\),这些数的最大公约数为 \(1\)

高桥君和青木君用这些数进行游戏。游戏由高桥君先手,双方轮流进行如下操作:

  • 从黑板上选择一个大于等于 \(2\) 的数,将其减去 \(1\)
  • 然后,计算黑板上所有数的最大公约数 \(g\),并将所有数都除以 \(g\)

当黑板上所有数都变为 \(1\),且无法再进行操作时,无法操作的一方判负。假设双方都采取最优策略,问哪一方会获胜。

sol

儿子题目。

\(\sum_{i=1}^N (A_i-1)\),如果没有除去最大公约数的话就是看奇偶性,奇数先手必胜。

但是现在有这个除法了,不难发现只有除去 \(2\) 的倍数才能改变奇偶性,所以说看什么情况才能除去 \(2\)

发现除去 2 的情况当且仅当只有一个奇数,遇到这种情况递归处理就好了。

http://www.hskmm.com/?act=detail&tid=26145

相关文章:

  • 2025.10.6——1绿1蓝
  • 深入解析:人工智能-Chain of Thought Prompting(思维链提示,简称CoT)
  • 年龄排序
  • 二分图最大匹配 输出具体方案
  • 我的联想小新潮7000笔记本的优化
  • Go语言之接口与多态 -《Go语言实战指南》 - 指南
  • 地球科学概论
  • 2025多校冲刺CSP模拟赛4 总结
  • 多路归并、败者树、置换-选择排序、最佳归并树
  • 看vue文档记录(未整理)
  • Spring5笔记
  • 50天50个前端项目 - HTML/CSS和JavaScript实战合集
  • [BalticOI 2002] Tennis Club (Day1) 解题报告
  • 党徽
  • ZKEACMS:基于ASP.Net Core开发的开源免费内容管理系统
  • MySQL面试题汇总
  • 穷人的中国象棋打谱程序
  • 文件系统的层次结构
  • oracle 19c学习笔记2
  • 文件保护
  • 一些数数杂题
  • AI元人文:规则与人文的统一之路
  • 10.7
  • qmd 模拟赛的一道题
  • 四元数:从理论基础到实际应用的深度探索 - 教程
  • Day12
  • HoneyWell(霍尼韦尔)1450g扫码枪说明书
  • 课上动手东脑问题
  • 箭头函数的疑问
  • 文件共享