摘要: 高级数据结构习题课 主讲人:软2307 刘兆洲 先来几道题目,看看大家伙上周线段树知识掌握了多少? 牛客寒假Day2 H题 Tokitsukaze and Power Battle (hard) 第一眼,跟维护区间最大字段和同一种方法? 如何维护 \(Big Node\) 的合并? struct N 阅读全文
posted @ 2025-03-21 18:06 EternalEpic 阅读(40) 评论(0) 推荐(0)
摘要: T1 猫猫虫与积分变换 我们发现本题只需要模拟分治的过程,从小到大进行还原,即先处理区间\([1,2]\),然后是\([1,4]\)...\([1, 2^k]\) (\(k=log_2(n)\)) code: #include <bits/stdc++.h> using namespace std; 阅读全文
posted @ 2025-03-16 21:36 EternalEpic 阅读(124) 评论(0) 推荐(0)
摘要: 我不知道为什么要补这一个远古场,但是确实里面几道题有点意思。 C. Divan and bitwise operations 显然,我们可以得到整个序列的按位或就是所有 \(x\) 的按位或,设为 \(S\)。 如果 \(S\) 的第 \(i\) 位为 \(0\),贡献即为 \(0\)。 否则总有一 阅读全文
posted @ 2025-03-05 01:38 EternalEpic 阅读(39) 评论(0) 推荐(0)
摘要: 1月12日 飞回家过寒假。打了CFR996,复习基本字符串算法。 1月13日 补CFR996,vpCFR992 1月14日 和队友vp了NEERC2024-2025,拼尽全力终于整出L和D。看了下榜大概是金牌水平就去吃饭了。吃完饭想补题发现连题解都没有,到算法群问了下,群u给了份俄文题解。。。得等以 阅读全文
posted @ 2025-01-13 17:52 EternalEpic 阅读(45) 评论(0) 推荐(0)
摘要: ddp题解,就是 \(f[pos][o][l][r]\) 表示线段树上pos位置的区间是否选出最大值,以及左右端点有没有被去到时的最大值。然后用线段树维护依次取某个值为最小值的时候dp的最优解。 const int N = 2e5 + 5; int T, n, a[N], f[N << 2][2][ 阅读全文
posted @ 2024-10-03 02:15 EternalEpic 阅读(139) 评论(0) 推荐(1)
摘要: 第一次学ddp的时候是2019年学长带我们复盘noip2018的保卫王国那道题,当时自然是不大会的,也不是很有就业空间,这几天CF有道正解是dsu的序列dp题被哥哥用ddp艹了过去,所以现在得复习一下ddp。 我们先从经典的树剖做法引入(全局平衡二叉树做法在我更新LCT复习笔记后再补) ddp最经典 阅读全文
posted @ 2024-10-02 23:58 EternalEpic 阅读(65) 评论(0) 推荐(0)
摘要: 首先,我们会有一个很简单的想法,枚举断边,产生两棵子树,然后在两棵树内分别求带权重心,计算贡献,这样的话复杂度是 \(O(n^2)\) 的。 那么我们要好好利用 $h \leq 100 $ 的性质。 考虑 \(sze[u]\) 为带权重量,\(g[u]\) 为以 \(u\) 为根的树,所有点都到 \ 阅读全文
posted @ 2024-10-01 23:42 EternalEpic 阅读(56) 评论(0) 推荐(0)
摘要: 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 阅读全文
posted @ 2024-09-29 22:17 EternalEpic 阅读(53) 评论(0) 推荐(0)
摘要: 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 阅读全文
posted @ 2024-09-28 00:31 EternalEpic 阅读(499) 评论(3) 推荐(1)
摘要: 原题比赛地址 A. Basic Diplomacy 模拟就好,就先随便取。然后对于大于 \(\lceil m/2\rceil\) 的那个数直接减到正好满足为止。 const int N = 1e5 + 5; int T, n, m, k[N], h[N]; vector <int> f[N], g[ 阅读全文
posted @ 2024-09-27 00:03 EternalEpic 阅读(67) 评论(0) 推荐(0)