摘要:
1月12日 飞回家过寒假。打了CFR996,复习基本字符串算法。 1月13日 补CFR996,vpCFR992 1月14日 和队友vp了NEERC2024-2025,拼尽全力终于整出L和D。看了下榜大概是金牌水平就去吃饭了。吃完饭想补题发现连题解都没有,到算法群问了下,群u给了份俄文题解。。。得等以 阅读全文
摘要:
数据结构 01trie const int M = 30; const int N = 2e5 + 5; int n, a[N]; struct Trie { int t[N * M][2], ed[N * M], dp[N * M], tot; inline void clear(void) { 阅读全文
摘要:
复习已学算法,重视思维题 记得学字符串和计算几何 9.18 复习了离线二维数点:P2163和P10814 板子如下: 点击查看代码 const int N = 2e6 + 5; int n, m, a[N], ans[N]; struct Query { int p, q, x; Query(int 阅读全文
摘要:
我不知道为什么要补这一个远古场,但是确实里面几道题有点意思。 C. Divan and bitwise operations 显然,我们可以得到整个序列的按位或就是所有 的按位或,设为 。 如果 的第 位为 ,贡献即为 。 否则总有一 阅读全文
摘要:
ddp题解,就是 表示线段树上pos位置的区间是否选出最大值,以及左右端点有没有被去到时的最大值。然后用线段树维护依次取某个值为最小值的时候dp的最优解。 const int N = 2e5 + 5; int T, n, a[N], f[N << 2][2][ 阅读全文
摘要:
第一次学ddp的时候是2019年学长带我们复盘noip2018的保卫王国那道题,当时自然是不大会的,也不是很有就业空间,这几天CF有道正解是dsu的序列dp题被哥哥用ddp艹了过去,所以现在得复习一下ddp。 我们先从经典的树剖做法引入(全局平衡二叉树做法在我更新LCT复习笔记后再补) ddp最经典 阅读全文
摘要:
首先,我们会有一个很简单的想法,枚举断边,产生两棵子树,然后在两棵树内分别求带权重心,计算贡献,这样的话复杂度是 的。 那么我们要好好利用 的性质。 考虑 为带权重量, 为以 为根的树,所有点都到 \ 阅读全文
摘要:
A 结论题,行着取 int n, m; signed main(void) { #ifdef ONLINE_JUDGE freopen("alter.in","r",stdin); freopen("alter.out","w",stdout); #endif read(n), read(m); w 阅读全文
摘要:
A int T, n, a[105], dp[105][2]; signed main(void) { for (read(T); T; T--) { read(n); int mx = 0, id = 0; for (int i = 1; i <= n; i++) { read(a[i]); if 阅读全文
摘要:
原题比赛地址 A. Basic Diplomacy 模拟就好,就先随便取。然后对于大于 的那个数直接减到正好满足为止。 const int N = 1e5 + 5; int T, n, m, k[N], h[N]; vector <int> f[N], g[ 阅读全文
摘要:
很有意思的题目,我们考虑能连边的两个数一定是在 01-Trie 上距离最近的两个点。于是我们先把所有数插入到 01-Trie 上去,然后 考虑以 为根的子树中最多能留几个数,他的两个儿子内部的点只能在内部转移,你只能取一个儿子和另一个儿子的一个,也就是说我们的转移为 \ 阅读全文