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

首先抠出包围了阵形的最小矩形。

将地图拉伸成一条链,即将第一行、第二行、第三行按顺序连接。阵形也可以用同样的方法处理。

那么问题转化为,给定两个 01 串 S 和 T,问每个 S 中长度为 |T| 的子串是否存在

一个点,两个串对应字符都是 1。

将 T 串翻转,那么就变成了卷积的形式,FFT 计算即可。

在 BFS 求出所有可行的位置之后,对于答案的计算,也是卷积的形式,用 FFT 加速即可。

时间复杂度 O(nm log(nm))

原文地址:https://www.cnblogs.com/betablewaloot/p/12180400.html

时间: 2024-10-05 23:25:28

floj 2265 【lxs Contest #141】航海舰队的相关文章

lxs Contest #120 2020.1.19

https://file.floj.tech/export/nYGAiM5E4Y4e15467bb2 t1 图 [题意] 给定无向连通图,判断它是否能被适中颜色染成使每个边所连的两个点颜色不同.如果不能则找出删去后原图仍然连通的奇环. [题解] 先找出原图一颗生成树,黑白染色使相邻的点颜色不同.在剩下的边上如果是一个二分图,则可以,否则有奇环.dfs并将沿途点再次黑白染色.如果染不了力则向上跳父亲知道跳到对面的点,这就是奇环.否则将染好的色输出即可. 代码如下: #include<bits/st

C. 【lxs Contest #140】Cac

[题意] [题解] 仙人掌,考虑圆方树. 正常构建圆方树并在每两个树边之间加入方点. 考虑使用每个方点维护与他相连的圆点信息,发现每个方点只能维护他的儿子圆点信息,否则会算重. 题目中修改操作即将两个圆点在新树上的路径上方点都加上v,即表示路径上所有环上的圆点都加v. #include<bits/stdc++.h> #define int long long using namespace std; const int N=6e5+5; const int mo=998244353; int

(第三场) C Shuffle Cards 【STL_rope || splay】

题目链接:https://www.nowcoder.com/acm/contest/141/C 题目描述 Eddy likes to play cards game since there are always lots of randomness in the game. For most of the cards game, the very first step in the game is shuffling the cards. And, mostly the randomness i

Maximum XOR Sum 系列问题

给定 $n$ 个两两不同的正整数 $a_1, a_2, \dots, a_n$,$a_i < 2^k$ . Problem 1(经典问题) 求 $a_i \xor a_j$ 的最大值,$ 1\le i, j \le n $ . 解法 字典树 Problem 2 从 $n$ 个数中任选出一些数,求异或和的最大值. Let the length of a number be the number of digits needed to write it out in binary, excludin

猎豹傅盛 :移动互联网的大航海时代来临

15 世纪中期,大航海时代开始,新航路开辟,几首小船引发了一场"商业革命",也改变了世界城市的排名.在此之前,世界前十的城市无一位于欧洲:在此之后,世界前十的城市无一位于东方. 如果说 15 世纪的那次大航海,连接的是物与物,那么移动互联网重现连接了人与人,将会是另一次新的航海时代.跨国贸易历来利润丰厚,互联网之前的时代是这样,欧洲列强赚的盆满钵满.在移动互联网时代,贸易壁垒降低,全球大市场形成.出海,就有机会建立起下一艘"无敌舰队". 现在的猎豹也在开辟新航线.在

LeetCode之Weekly Contest 93

第一题:二进制间距 问题: 给定一个正整数 N,找到并返回 N 的二进制表示中两个连续的 1 之间的最长距离. 如果没有两个连续的 1,返回 0 . 示例 1: 输入:22 输出:2 解释: 22 的二进制是 0b10110 . 在 22 的二进制表示中,有三个 1,组成两对连续的 1 . 第一对连续的 1 中,两个 1 之间的距离为 2 . 第二对连续的 1 中,两个 1 之间的距离为 1 . 答案取两个距离之中最大的,也就是 2 . 示例 2: 输入:5 输出:2 解释: 5 的二进制是 0

2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) Solution

A:Exam Solved. 温暖的签. 1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 const int maxn = 1e3 + 10; 6 7 int k; 8 char str1[maxn], str2[maxn]; 9 10 int main() 11 { 12 while(~scanf("%d",&k)) 13 { 14 scanf("%s", str1 + 1); 15

[最短路,最大流最小割定理] 2019 Multi-University Training Contest 1 Path

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6582 Path Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 3747    Accepted Submission(s): 1075 Problem Description Years later, Jerry fell in love

宁南山:要做困难的事情才能成为发达国家(整个国家要发展,经济要发展,核心还是科技和产业进步,而不是一夜成名的运动家。大航海时代,就有千千万万的西方人横跨各个大洋,无数人死在海上)

宁南山:要做困难的事情才能成为发达国家 深圳宁南山 这一篇是短文,很短的那种,也没啥干货,就是些感想. 最近瑞典的环保女孩桑伯格火了,她号召全球学生罢课,坐帆船横渡大西洋,以及在联合国演讲,被称为青年社会活动家. 这让我想起了2014年台湾太阳花运动的林飞帆和陈为廷,以及香港的黄之锋等人,他们的成名几乎都是一夜之间,通过某几场运动在短时间内就成为了社会运动明星. 这说明什么呢,一个社会,要想获得一个“社会运动人才”,实在是太简单了,太容易了.只需要持有激进的立场的人,同时通过某个或某个系列热点事