随笔分类 - CF
摘要:题目链接 题解 知识点:贪心、背包dp。 先考虑一个矩形的情况: 若是方形,行列交替染色最优。 若不是方形,选行列中较小的一侧染色,直到变为方形。 因此,我们可以根据上面的结论预处理 \(c_{i,j}\) ,表示第 \(i\) 个矩形贡献为 \(j\) 的最小花费。 现在考虑多个矩形的情况,显然是
阅读全文
摘要:题目链接 题解 知识点:贪心,STL。 显然,子序列最长长度是数的种类数,即保证每个数都会被选到。子序列的奇数位要尽可能大、偶数位尽可能小。 我们从左到右依次选择子序列的数,为了保证每个数都能被选到,我们预处理出每个数的最晚出现位置 \(lst\) 。每次选择,只有在当前还未选择的数的 \(lst\
阅读全文
摘要:题目链接 题解 知识点:贪心,博弈论。 一个 \(01\) 串中 \(01, 10\) 的个数差只与首尾两个字符相关,若首尾字符相同,则个数差为 \(0\) ,否则为 \(1\) 或 \(-1\) 。因此,树上除了根节点和叶子节点的 \(?\) 是不影响叶子节点权值的(但可能影响策略,导致答案不一样
阅读全文
摘要:题目链接 题解 知识点:DFS序。 编号已经满足 dfs 序,因此对于边 \(t_v = (u,v), u < v\) ,有且仅有两条路径 \(v - 1 \to v, R_v \to R_v \bmod n + 1\) 会经过这条边,前者是进入子树 \(v\) 时经过,后者是离开子树 \(v\)
阅读全文
摘要:题目链接 题解 知识点:构造。 首先反证法容易证明一个结论:每次增加一个字符,本质不同的回文子串至多增加一个。 那么无解的条件就是,\(c_i - c_{i-1} > x_i -x_{i-1}\) ,即距离不够数量的增加。 其他情况均有解,可以考虑利用 abc 作尾部填充,因为其只在一开始提供 \(
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1833/G) # 题解 **知识点:贪心,树形dp。** 当 $3 \not \mid n$ 时,显然无解。 考虑一种贪心策略,从叶子节点往上只,要以当前节点为根的子树大小能被 $3$ 整除,就立刻切
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1822/F) # 题解 **知识点:树的直径,枚举。** 考虑一个结论:树上任意点的最远点一定是树的直径的端点。 那么对于一个根节点,只要知道了树的直径,那么我们就可以立即得到最远距离,即乘 $k$
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1826/D) # 题解 **知识点:贪心,前缀和,枚举。** 首先考虑一个贪心结论,选择区间端点一定是两个最大值,因此 $i_1 = l,i_3 = r$ 。 考虑变形式子 $(b_l + l) +
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1829/H) # 题解 **知识点:线性dp,位运算。** 考虑设 $f_{i,j}$ 表示考虑了前 $i$ 个数字,与和为 $j$ 的方案数。转移方程显然。 注意初值为 $f_{0,63} = 1$
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1833/F) # 题解 **知识点:组合数学,枚举,双指针。** 注意到,长度为 $m$ 且数字各不相同的子序列,那么最大值与最小值的差至少为 $m-1$ 。因此,对于任意子序列,它是合法的,当且仅当
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1850/H) # 题解 **知识点:贪心,图论建模。** 考虑对约束 `a b d` 建边 $a \mathop{\to}\limits^d b$ 与 $b \mathop{\to}\limits^{
阅读全文
摘要:[比赛链接](https://codeforces.com/contest/1853) # A ## 代码 ```c++ #include using namespace std; using ll = long long; int a[507]; bool solve() { int n; cin
阅读全文
摘要:[比赛链接](https://codeforces.com/contest/1851) # A ## 代码 ```c++ #include using namespace std; using ll = long long; bool solve() { int n, m, k, H; cin >>
阅读全文
摘要:[比赛链接]() # A ## 代码 ```c++ #include using namespace std; using ll = long long; bool solve() { int n, m, k; cin >> n >> m >> k; int x, y; cin >> x >> y;
阅读全文
摘要:[比赛链接](https://codeforces.com/contest/1831) # A ## 代码 ```c++ #include using namespace std; using ll = long long; bool solve() { int n; cin >> n; for (
阅读全文
摘要:[比赛链接](https://codeforces.com/contest/1843) # A ## 代码 ```c++ #include using namespace std; using ll = long long; int a[57]; bool solve() { int n; cin
阅读全文
摘要:[比赛链接](https://codeforces.com/contest/1844) # A ## 代码 ```c++ #include using namespace std; using ll = long long; bool solve() { int a, b; cin >> a >>
阅读全文
摘要:[比赛链接](https://codeforces.com/contest/1847) # A ## 代码 ```c++ #include using namespace std; using ll = long long; int a[107]; int f[107]; bool solve()
阅读全文
摘要:# A ## 代码 ```c++ #include using namespace std; using ll = long long; int p[507]; bool solve() { int n; cin >> n; for (int i = 1;i > p[i]; int pos1 = 0
阅读全文
摘要:[比赛链接](https://codeforces.com/contest/1846) # A ## 代码 ```c++ #include using namespace std; using ll = long long; bool solve() { int n; cin >> n; int c
阅读全文

浙公网安备 33010602011771号