floj 2265 【lxs Contest #141】航海舰队

首先抠出包围了阵形的最小矩形。 将地图拉伸成一条链,即将第一行、第二行、第三行按顺序连接。阵形也可以用同样的方法处理。 那么问题转化为,给定两个 01 串 S 和 T,问每个 S 中长度为 |T| 的子串是否存在 一个点,两个串对应字符都是 1。 将 T 串翻转,那么就变成了卷积的形式,FFT 计算即可。 在 BFS 求出所有可行的位置之后,对于答案的计算,也是卷积的形式,用 FFT 加速即可。 时间复杂度 O(nm log(nm))
上一篇:单身三连之二


下一篇:RHCE 第13节课 使用SSH服务管理远程主机