其他分享
首页 > 其他分享> > cf1450 C1. Errich-Tac-Toe (Easy Version) / C2. Errich-Tac-Toe (Hard Version)

cf1450 C1. Errich-Tac-Toe (Easy Version) / C2. Errich-Tac-Toe (Hard Version)

作者:互联网

题意:

给定一个棋盘,初始棋盘中的某些位置上有棋子,棋子有两种类型 'O' 和 'X'

要求改变一些棋子的类型,使得没有同类型的三个棋子在一行(或一列)连续。

改变的棋子数不能大于棋子总数的 1/3 下取整

Easy Version:初始只有 'X'

Hard Version:初始两种类型都可能有

思路:

img

先按 \((i+j)\%3\) 的值把棋子分成三类。(似乎是常用套路)

Easy Version

把最少的那类棋子全变成 'O' 即可

Hard Version

取两类 \(i\neq j\),前者全变成 'O',后者全变成 'X'。易知这样操作后棋盘一定合法。那操作次数合不合要求呢?

上述方案的操作次数为 \(i\) 中 'X' 的数量 + \(j\) 中 'O' 的数量,把这个和记为 \(f(i,j)\)

那么 \(\sum\limits _{i\neq j} f(i,j)=2*tot\),其中 \(tot\) 为棋子总数

则必有 \(\min\limits _{i\neq j} f(i,j)\le 2*tot/6=tot/3\)

标签:Hard,Tac,tot,Version,Easy,棋子,Errich,neq
来源: https://www.cnblogs.com/wushansinger/p/16308374.html