随笔分类 - CF
摘要:题目链接 题解 知识点:贪心、背包dp。 先考虑一个矩形的情况: 若是方形,行列交替染色最优。 若不是方形,选行列中较小的一侧染色,直到变为方形。 因此,我们可以根据上面的结论预处理 ,表示第 个矩形贡献为 的最小花费。 现在考虑多个矩形的情况,显然是
阅读全文
摘要:题目链接 题解 知识点:贪心,STL。 显然,子序列最长长度是数的种类数,即保证每个数都会被选到。子序列的奇数位要尽可能大、偶数位尽可能小。 我们从左到右依次选择子序列的数,为了保证每个数都能被选到,我们预处理出每个数的最晚出现位置 。每次选择,只有在当前还未选择的数的 \(lst\
阅读全文
摘要:题目链接 题解 知识点:贪心,博弈论。 一个 串中 的个数差只与首尾两个字符相关,若首尾字符相同,则个数差为 ,否则为 或 。因此,树上除了根节点和叶子节点的 是不影响叶子节点权值的(但可能影响策略,导致答案不一样
阅读全文
摘要:题目链接 题解 知识点:构造。 首先反证法容易证明一个结论:每次增加一个字符,本质不同的回文子串至多增加一个。 那么无解的条件就是, ,即距离不够数量的增加。 其他情况均有解,可以考虑利用 abc 作尾部填充,因为其只在一开始提供 \(
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1833/G) # 题解 **知识点:贪心,树形dp。** 当 时,显然无解。 考虑一种贪心策略,从叶子节点往上只,要以当前节点为根的子树大小能被 整除,就立刻切
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1822/F) # 题解 **知识点:树的直径,枚举。** 考虑一个结论:树上任意点的最远点一定是树的直径的端点。 那么对于一个根节点,只要知道了树的直径,那么我们就可以立即得到最远距离,即乘
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1826/D) # 题解 **知识点:贪心,前缀和,枚举。** 首先考虑一个贪心结论,选择区间端点一定是两个最大值,因此 。 考虑变形式子 $(b_l + l) +
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1829/H) # 题解 **知识点:线性dp,位运算。** 考虑设 表示考虑了前 个数字,与和为 的方案数。转移方程显然。 注意初值为
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1833/F) # 题解 **知识点:组合数学,枚举,双指针。** 注意到,长度为 且数字各不相同的子序列,那么最大值与最小值的差至少为 。因此,对于任意子序列,它是合法的,当且仅当
阅读全文
摘要:[题目链接](https://codeforces.com/problemset/problem/1850/H) # 题解 **知识点:贪心,图论建模。** 考虑对约束 `a b d` 建边 与 $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
阅读全文