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$ 矩阵即可。时间复杂度分析一波:先考虑行的贡献,枚举的...
UOJ 143首先任意长度为二的子序列都是等差子序列,所以我们想让长度 $\geq 3$ 的子序列都不是等差子序列:我们可以利用奇偶性:每次奇数放左边,偶数放右边,两边除二递归下去,保证了每次跨越中心的所有长度 $\geq 3$ 的子序列差都奇偶性不同。构造不同的东西的时候可以考虑奇偶性。一个智力题给一个最大团大小不小于 $\frac{2n}{3}$ 的图,求一个大小为 $\frac{n}{...
A贪心删除出现次数最少的数。#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 push_back #d...
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做法一:答案一定是相邻两个的差的最小值。考虑反证法:如果 $[l,r](l+1 < r)$ 是答案,那么中间一定能取到一段小于等于平均数的。做法二:二分答案。首先答案是 $\min_{i,j} \frac{a_i-a_j}{j-i}$,考虑二分最小值,那么相当于对于所有 $j>i$ 要有 $a_i-a_j \geq kj-ki$,也就是 $a_i+k_i \geq a_j+k_...