cf1450 C1. Errich-Tac-Toe (Easy Version) / C2. Errich-Tac-Toe (Hard Version)
作者:互联网
题意:
给定一个棋盘,初始棋盘中的某些位置上有棋子,棋子有两种类型 'O' 和 'X'
要求改变一些棋子的类型,使得没有同类型的三个棋子在一行(或一列)连续。
改变的棋子数不能大于棋子总数的 1/3 下取整
Easy Version:初始只有 'X'
Hard Version:初始两种类型都可能有
思路:
先按 \((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