摘要:
题目链接:https://codeforces.com/problemset/problem/570/D 解题思路: 树上启发式合并。 我一开始开了一个 \(cnt[maxn][26]\) 和一个 \(odd[maxn]\),其中: \(cnt[d][c]\) 表示字符 \(c\) 在第 \(d\) 阅读全文
摘要:
题目链接:https://codeforces.com/problemset/problem/600/E 题目大意:求一个以 $1$ 为根节点的有根树中每个节点对应的子树中出现次数最多的所有颜色的编号之和。 解题思路: 树上启发式合并。 额外的处理(如何在 \(O(1)\) 时间内求出节点 \(u\ 阅读全文
摘要:
主要是感觉 arpa 大佬的例程使用了C++14的特性遍历vector容器,感觉这样写代码更清晰,所以也尝试使用了这种写法。 C++14版本: #include <bits/stdc++.h> using namespace std; const int maxn = 1000010; int n, 阅读全文
摘要:
原文链接:https://www.cnblogs.com/GuoYuying/p/12386481.html 阅读全文
摘要:
题目描述 给你一个包含 \(n(1 \le n \le 10^6)\) 个节点的树,节点编号从 $1$ 到 \(n\),根节点的编号为 $1$。每一个节点都有一个颜色,我们用 \(c_i\) 来表示节点 \(i\) 的颜色。 接下来有 \(m(1 \le m \le 10^6)\) 次询问,每一次询 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/CF662B 题目大意: 有 \(n\) 个点 \(m\) 条边,边有颜色 —— 红色或蓝色。你可以对点进行操作,每操作一个点,与这个点相邻的所有边会变化颜色(红色变蓝色,蓝色变红色)。问:最少需要操作几次能够让边的颜色都一 阅读全文
摘要:
题目链接:https://codeforces.com/problemset/problem/771/D 题目大意:给你一个长度为 \(n(1 \le n \le 75)\) 的字符串,每一步操作你可以交换字符串中相邻的两个元素。求最少的操作步数,使得字符串中不包含子串 “VK”。 解题思路: 因为 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/CF689D 解题思路:因为 \(\max_{i=l}^{r} a_i\) 随 \(r\) 单调递增; \(\min_{i=l}^{r} b_i\) 随 \(r\) 单调递减。 所以我们可以枚举 \(l\),二分 \(\ma 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/CF187C 解题思路: 首先要求最小的 \(q\) ,考虑二分 \(q\)。 在 \(q\) 确定的情况下,使用 BFS 可以得到从 \(s\) 到 \(t\) 是否连通,但是因为这里我其实希望到达每个节点的时候能量值尽可 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/CF607B 解题思路(区间DP)完全参照自 QwQcOrZ大佬的博客:https://www.luogu.com.cn/blog/61120/solution-cf607b 示例代码: #include <bits/std 阅读全文