A. 全 1 子矩阵 题意: 给出一个01矩阵,问矩阵是否存在全是1的子矩阵 题解: 找出矩形四个角,看是否全是1,模拟即可。 代码: #pragma GCC optimize(3,"Ofast","inline") #include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <cmath> #include <set> #incl…
A. 全 1 子矩阵 题意: 给出一个01矩阵,问矩阵是否存在全是1的子矩阵 题解: 找出矩形四个角,看是否全是1,模拟即可。 代码: #pragma GCC optimize(3,"Ofast","inline") #include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <cmath> #include <set> #incl…
小A和小B 题意: 小A和小B在n∗m迷宫的两个不同位置 迷宫中有障碍物迷宫中有障碍物 小A每分钟可以走周围八个方向一次小A每分钟可以走周围八个方向一次 小B每分钟可以走上下左右四个方向两次小B每分钟可以走上下左右四个方向两次 问两个人最早什么时候可以相遇,不能相遇输出-1问两个人最早什么时候可以相遇,不能相遇输出−1 第一行两个整数N,M分别表示迷宫的行和列。 接下来一个N×M的矩阵(1 < N,M < 1000) 其中"C"表示小A的位置,"D"表示小B的的位…
D.Drop Voicing 题意: 有两种操作, op1:把倒数第二个移到首位 op2:把第一个移到末尾 求总共最少需要多少次操作2是的序列升序 题解: 找规律发现n-最大LIS 代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; #define mem(a, b) memset(a, b, sizeof(a)) #define rap(i, a, n) for(int i=a; i<=n; i++) #…
B.Basic Gcd Problem 题意: $$ f_c(x)=\underset{i=1..x-1}{\max}c\cdot f_cgcd\left( i,x \right)\quad x>1 $$ $$ f_c\left( x \right) =1\quad \quad x=1 $$ 给定\left( ni,ci \right) \quad求f_{c_i}\left( n_i \right) \text{mod}\left( 10^9+7 \right) 题解: 考虑c的贡献次数,我们最后的答案肯…
A.Clam and Fish 题意: 一个钓鱼游戏包含n个阶段,每个阶段有4种类型: 类型0:0条鱼,0条蛤 类型1:0条鱼,1只蛤 类型2:1条鱼,0条蛤 类型3:1条鱼,1只蛤 每个阶段可以执行四种操作之一: 1:用1只蛤换1包鱼饵 2:如果有1条鱼,可以不用鱼饵抓到这条鱼 3:无论此阶段有没有鱼,都可以用1包鱼饵捕获1条鱼 4:什么都不做 求每局游戏能抓到鱼的最大条数。 题解: 贪心:在类型3,4,直接抓鱼。在类型0时,只能通过鱼饵抓鱼。在类型1时,可以换鱼饵或用鱼饵抓鱼。 在遇到3和4时,直接答案加1。 …
A. All with Pairs 题意: 给定n个字符串,求所有字符串中前缀与后缀相等的长度的平方的和 题解: 知识点:Hash+KMP 先对所有的字符串求后缀Hash,用map纪录每个后缀的Hash值一样的个数。然后遍历所有的前缀Hash,在map里找当前Hash值记录下,最后把所有符合条件的长度的平方乘以个数加起来。但会有多算的部分,只是后要运用KMP中的next数组,减掉重复的部分。 代码: #include <bits/stdc++.h> using namespace std; typede…
前言: 不会网络流的菜鸡就做出来了F和J(Worlfram + oeis),还是太菜,好好学习,早日刷完网络流24题。 F. Infinite String Comparision 题意: For a string x, Bobo defines x^{\infty}=xxx_{\cdot \cdot \cdot} which is x repeats for infinite times, resulting in a string of infinite length. Bobo has two strings…
题意: 小石有 n 个妹子,每个妹子都有一个细心程度 ai 和一个热心程度 bi, 小石想给她们一个重要程度 ti(重要程度为 1 表示最重要,重要程度越小表示越重要)。如果一个妹子 i 的细心程度和热心程度都比妹子 j 大,那么妹子 i 的重要程度要大于妹子 j 的重要程度,即妹子 i 比妹子 j 重要。 流程如下: 每次从所有没有重要程度的妹子中,找到若干妹子。对于这些妹子的任意一个,需要保证没有其他妹子比她更重要。然后把她们的重要程度标为 1 。下一次再从剩下没有重要程度的妹子中找到若干妹子,依然符合上述条件…
题解: 显然f(x) = x^n 为完全积性函数,所以f(xy) = f(x) * f(y); 因为一个合数等于连个素数的积,所以,归根到底就是欧拉筛素数求贡献。 时间复杂度:欧拉筛O(N) + 快速幂O(logN) + 素数个数O(N/logN) = O(N) 代码: #include <iostream> #include <cstdio> #include <sstream> #include <cstring> #include <map> #in…
上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。小希现在把她的设计图给你,让你帮忙判断她的设计图是否符合她的设计思路。比如下面的例子,前两个是符合条件的,但是最后一个却有两种方法从5到达8。 Input 输入包…