ABC351D_MagicalCookies

Magical Cookies

根据问题的描述,如果在判断同一行或同一列的所有饼干是否具有相同颜色时,选择了时间复杂度为 \(\Theta(H)\)\(\Theta(W)\) 的方法,那么在每次操作 1 或操作 2 中,时间复杂度将变为 \(\Theta(HW)\),因此在最坏情况下,整个计算的时间复杂度将为 \(\Theta(HW(H+W))\),可能会导致超时。

为了加快速度,我们可以利用颜色种类较少的特点。假设可能的颜色种类为 \(\sigma\) 种,对于本问题而言,\(\sigma = 26\)。我们可以在处理每一行时,同时记录颜色为 ab、...、z 的饼干的数量,以便在 \(O(\sigma)\) 的时间复杂度内判断同一行或同一列的饼干是否具有相同颜色。因此,我们可以在 \(O(\sigma (H+W)^2)\) 的时间复杂度内完成颜色判断部分。对于标记和移除饼干,由于每个饼干只需要进行一次操作,所以时间复杂度为 \(O(HW)\),因此总体的时间复杂度为 \(O(\sigma (H+W)^2)\)

若直接暴力,会发现 TLE

正解可以在找到字母时 break,没有答案是终止程序,使得效率提升三倍。

TLE

AC

posted @ 2023-08-20 10:54  wscqwq  阅读(41)  评论(0编辑  收藏  举报