AGC 26 F Manju Game
$\DeclareMathOperator{\sw}{sw}$
$\DeclareMathOperator{\sb}{sb}$
$\DeclareMathOperator{\dp}{dp}$
用 $\sw[i]$ 表示前 $i$ 个盒子中所有白盒子的权值之和。
用 $\sb[i]$ 表示前 $i$ 个盒子中所有黑盒子的权值之和。
对于偶数 $i$,用 $\dp[i]$ 表示此白盒子之前的所有盒子是否存在合法划分。
转移方程
$\dp[i] = \mathsf{true} \iff$ 存在偶数 $j < i$ 满足 $\dp[j] = \mathsf{true}$ 且 $\sb[i-1] - \sb[j] - (\sw[i-1] - \sw[j]) \ge X$ 。
注意到,$ \sb[i-1] - \sb[j] - (\sw[i-1] - \sw[j]) \ge X $ 即 $ (\sb[i-1] - \sw[i-1]) - (\sb[j] - \sw[j]) $ 。
题解上所说的
Let $W_1, \dots , W_k$ be the white boxes that appear in this tree, from left to right. The first player will take all these boxes, no matter what the second player does. These $k$ boxes split the sequence of boxes into $k + 1$ parts. For one of these parts, the first player takes all black boxes and the second player takes all white boxes. For all other parts, the first player takes all white boxes and the second player takes all black boxes. The choice of the "one part" depends on the second player’s strategy.
可以这样理解:
先手玩家可以事先从左到右任选 $k$ 个白盒子(即上图中的圆形)这些白盒子将余下的盒子分成 $k+1$ 段(即上图中的矩形,当总共有奇数个盒子时,最后一段可能是空的)。无论后手玩家如何应对,先手玩家总可以在最后一个阶段取走这 $k+1$ 段中某一段里的所有黑色盒子而结束游戏,而让先手玩家最后取走哪一段里的所有黑盒子完全由后手玩家确定。
有一种特殊情况需要注意:当 $n$ 为偶数时,若先手玩家在某一步拿走了最后一个白盒子,那么先手玩家的「最后一个阶段」只能是「取走最后一个白盒子之后的空段里的黑盒子」而不能是「取走最后一个白盒子之前的某一段里的所有黑盒子」,在这种情况下,先手玩家在最后一个阶段的行为是由先手玩家自己决定的,而不是由后手玩家决定的。事实上,如果先手玩家取了最后一个白盒子,那么他必然取走了全部白盒子而后手玩家取走了全部黑盒子。
所以最好是对 $n$ 为偶数的情况单独处理,这种情况下先手的策略是:取全部黑盒子或全部白盒子。
AGC 26 F Manju Game的更多相关文章
- AGC 016 F - Games on DAG(状压dp)
题意 给你一个有 \(n\) 个点 \(m\) 条边 DAG 图,点的标号和拓扑序一致. 现在有两个人进行博弈,有两个棋子分别在 \(1, 2\) 号点上,需要不断移动到它指向的点上. 如果当前两个点 ...
- AGC 018 F - Two Trees
F - Two Trees 链接 题意: 给定两棵都是N个节点的有根树,节点均从1~N标号.给每个标号定一个权值(类似一号点的权值是x,那么两棵树中1号点的权值都是x),使在两棵树满足以任意节点为根的 ...
- Educational Codeforces Round 26 F. Prefix Sums 二分,组合数
题目链接:http://codeforces.com/contest/837/problem/F 题意:如题QAQ 解法:参考题解博客:http://www.cnblogs.com/FxxL/p/72 ...
- Atcoder Grand Contest 026 (AGC026) F - Manju Game 博弈,动态规划
原文链接www.cnblogs.com/zhouzhendong/AGC026F.html 前言 太久没有发博客了,前来水一发. 题解 不妨设先手是 A,后手是 B.定义 \(i\) 为奇数时,\(a ...
- AGC 26 D Histogram Coloring
题目 将柱子的高度离散化$\DeclareMathOperator{\dp}{dp}$ 设第 $i$ 根柱子实际高度是 $h_i$,离散化之后的高度是 $g_i$:第 $i$ 高的高度是 $H_i$, ...
- [题解] Atcoder AGC 005 F Many Easy Problems NTT,组合数学
题目 观察当k固定时答案是什么.先假设每个节点对答案的贡献都是\(\binom{n}{k}\),然后再减掉某个点没有贡献的选点方案数.对于一个节点i,它没有贡献的方案数显然就是所有k个节点都选在i连出 ...
- AtCoder练习
1. 3721 Smuggling Marbles 大意: 给定$n+1$节点树, $0$为根节点, 初始在一些节点放一个石子, 然后按顺序进行如下操作. 若$0$节点有石子, 则移入盒子 所有石子移 ...
- RichText
RichText 效果 特点 1.按照需要调节部分字体的颜色 2.调节段落的行间距,字间距 源码 github:https://github.com/makingitbest/RichText 细节 ...
- 弱省互测#0 t2
题意 给定两个字符串 A 和 B,求下面四个问题的答案: 1.在 A 的子串中,不是 B 的子串的字符串的数量. 2.在 A 的子串中,不是 B 的子序列的字符串的数量. 3.在 A 的子序列中,不是 ...
随机推荐
- fmt - 简易的文本格式优化工具 simple optimal text formatter
总览 (SYNOPSIS) ../src/fmt [-DIGITS] [OPTION]... [FILE]... 描述 (DESCRIPTION) 重新 格式化 文件 FILE(s) 中的 每一个 段 ...
- python_11_guess任性玩
age_of_oldboy=56 count=0 while count<3: guess_age=int(input("guess age:")) if guess_age ...
- 漫谈 Clustering (3): Gaussian Mixture Model
上一次我们谈到了用 k-means 进行聚类的方法,这次我们来说一下另一个很流行的算法:Gaussian Mixture Model (GMM).事实上,GMM 和 k-means 很像,不过 GMM ...
- 理解dropout
理解dropout 注意:图片都在github上放着,如果刷不开的话,可以考虑FQ. 转载请注明:http://blog.csdn.net/stdcoutzyx/article/details/490 ...
- [未完] term.js 记录遇到的问题
参考博文:https://www.cnblogs.com/zhenfei-jiang/p/7065038.html 按照网上查找的资料敲了代码 term.on('data', function(dat ...
- 图片url转base64
var xhr = new XMLHttpRequest() // 配置的代理,解决跨域问题 xhr.open('GET', url.replace('http://xxx.com', '/img') ...
- 【Django】使用list对单个或者多个字段求values值
使用list对values进行求值: 单个字段的输出结果: price_info=list(Book.objects.filter(auth_id='Yu').values('book_price') ...
- linux正则表达式企业级深度实践案例1
linux正则表达式结合三剑客企业级实践: 1.取系统ip [root@redhat~]# ifconfig eth0 解答: 替换命令: sed 's#支持正则位置##g' file 先取第 ...
- STM32位带操作
STM32的位带操作是基于cortex内核自带的,而不是st公司独创.基本的思路就是用一个32位的地址空间访问一个bit,因为stm32只支持32位数据的读取,不像51单片机一样,是可以单独对一位操作 ...
- 华东交通大学2018年ACM“双基”程序设计竞赛 D
摸鱼之王MIKU酱想去埃及玩,需要一个人陪同.小新和小磊都想陪MIKU酱一起去,但名额只有一个.所以小磊和小新决定用一个小游戏来决定谁和MIKU酱出去玩. 游戏的道具是21张塔罗牌,塔罗牌分 ...