D. Big Brush (思维,搜索)

题目
https://codeforces.com/contest/1638/problem/D 大致题意就是:给一个 nm 的网格,要求用 22 的刷子刷最多 n*m 次将它刷成目标颜色状态。若不能则输出 -1.。
思路
逆时过来想:从最后一刷开始,那肯定是完整的 22 的同色田字A。那么紧贴着这个 22 的最后一次刷田字B,就应该满足除了原来A中的色块,其他色块颜色相同,以此类推,紧贴着 A,B 的最后一次刷田字 C ,就应该除了AB刷过的块,其他色块颜色相同…… 那么就有了一个刷法:起初,先把图案中所有同色“田字”刷了作为最后一步(他们互不干扰),然后把刷了的块做上标记。之后一直找其他“田字”中除了做了标记的块,其他块颜色相同的田字,依次作为往前的步骤。 具体实现,用栈来存答案。找田字用队列广搜:一开始扫完同色田都加入一个队列,每次弹出队首并检查与其相邻的没用过的田字是否符合要求,若符合要求则将其加

D. Big Brush (思维,搜索)最先出现在Python成神之路

版权声明:
作者:congcong
链接:https://www.techfm.club/p/22152.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>