CF 1107 题解
A如果长度为 $2$ 特判,否则将第一个数和剩下的数分开。B$B$ 进制下正整数的数根等价于 $\pmod {B-1}$,注意这里 $0$ 对应的答案是 $B-1$。所以答案是 $(k-1)B+x$。C双指针扫出所有相同的段,每段取前 $k$ 大即可。D观察一下发现只需要枚举 $x|n$,然后前缀和预处理+判断所有矩阵是不是全 $0/1$ 矩阵即可。时间复杂度分析一波:先考虑行的贡献,枚举的...
A如果长度为 $2$ 特判,否则将第一个数和剩下的数分开。B$B$ 进制下正整数的数根等价于 $\pmod {B-1}$,注意这里 $0$ 对应的答案是 $B-1$。所以答案是 $(k-1)B+x$。C双指针扫出所有相同的段,每段取前 $k$ 大即可。D观察一下发现只需要枚举 $x|n$,然后前缀和预处理+判断所有矩阵是不是全 $0/1$ 矩阵即可。时间复杂度分析一波:先考虑行的贡献,枚举的...
A假设 $a \geq b$树状数组分开维护就好了。#include <bits/stdc++.h> #define fi first #define se second #define db double #define U unsigned #define P std::pair<int,int> #define LL long long #define pb ...
A二分答案 $x$,加入所有 $\leq x$ 的边后判断图是否强连通即可。一种方法是判联通性+tarjan,但是可以建正向图和反向图分别从 $1$ 开始 dfs 。(这样说明 $1$ 和任何点都有两条路径,所以任意两点都有两条路径)有向图 tarjan 不要判 father,,一开始因为这个吃了罚时。#include <bits/stdc++.h> #define fi fi...
A取 $\ln$,每次只需要判断 $\sum_{i=1}^k \ln(i) \geq \sum_{i=k+1}^n \ln(i)$ 即可。#include <bits/stdc++.h> #define fi first #define se second #define db double #define U unsigned #define P std::pair<i...
总算是正常的普及组模拟赛难度了。。昨天的甚至算不上普及组模拟赛难度吧(A二分答案,我们肯定是贪心等到必须要选取某个点的时候再选取。可以每次二分判断,也可以开个指针维护中位数在哪里来判断。#include <bits/stdc++.h> #define fi first #define se second #define db double #define U unsigned ...