摘要: aaa aaa 阅读全文
posted @ 2026-05-25 23:20 jackzhang2013 阅读(0) 评论(0) 推荐(0)
摘要: 解法 我们先把严格递增这个条件转换非降。 把每个 \(A_i\) 减去 \(i\),这样原来严格递增的一定非降,现在非降的一定递增。 不过为了没有负数,我们还可以再加上 \(n\)。 转换后,移动还是与原来一样,从左到右。 在前缀和数组上考虑,如果将 \(a_i\) 移动到 \(a_{i+1}\), 阅读全文
posted @ 2026-05-25 23:18 jackzhang2013 阅读(0) 评论(0) 推荐(0)
摘要: AtCoder Beginner Contest 455 A ~ F 题解 阅读全文
posted @ 2026-04-26 10:41 jackzhang2013 阅读(18) 评论(0) 推荐(0)
摘要: AtCoder Beginner Contest 425 A ~ G 题解 阅读全文
posted @ 2025-10-01 16:52 jackzhang2013 阅读(22) 评论(0) 推荐(0)
摘要: 前置知识:线段树 权值线段树和普通的线段树的唯一差别就是维护的内容不同,线段树维护的是每个位置。而权值线段树维护的是每个值,故称为权值线段树。 剩下可以讲的不多,每道题的方法也不一样,这里直接讲例题了。 Luogu P3369 【模板】普通平衡树 这题虽然是平衡树模板,但也可以用权值线段树解决。 首 阅读全文
posted @ 2025-08-07 23:13 jackzhang2013 阅读(51) 评论(0) 推荐(0)
摘要: A,B H₂O题。 A 题直接秒,B 题直接用 STL,甚至比 A 题短。 C 观察题意后发现本题其实就相当于求防守最薄弱的城堡。 看到区间修改多次最后查询,用差分解决就行,最后再用前缀和求值取 min。 当然你也可以用线段树来做 D 俗话说得好,有错误贪心就一定有正确 DP。 在赛时我先试图写了贪 阅读全文
posted @ 2025-05-31 23:45 jackzhang2013 阅读(45) 评论(0) 推荐(0)
摘要: 解题过程 首先发现这是一个典型的依赖 DP,但是进一步观察可发现最多只有一层。 20pts 于是我们发现每次无非就是只买主件、买主件和第一个附件、买主件和第二个附件以及买主件和所有附件这四种可能。于是我们在每次输入时判断这个部件是不是主件,如果是就直接加入到后续的物品中,如果不是则再判断是不是第一个 阅读全文
posted @ 2025-05-16 21:36 jackzhang2013 阅读(62) 评论(0) 推荐(0)
摘要: 解法 \(f(n,m)\) 表示将 \(m\) 个字母插入到 \(n\) 个空隙之中。 \(f(n,m)=C_{n+m-1}^{n-1}\) 证明 可以发现 \(f\) 就相当于将 \(m\) 个苹果放到 \(n\) 个盒子里。 通过栅栏法,可以推断出该式等于 \(C_{n+m-1}^{n-1}\) 阅读全文
posted @ 2025-05-13 21:57 jackzhang2013 阅读(41) 评论(0) 推荐(0)
摘要: A,B H₂O题,秒。 C 发现如果枚举两个数会超时,但如果枚举它们的值却不会超时。 于是我们可以先记录每个值有几个数,再枚举 \(1\sim 10^4\) 的第一个数 \(a\)。 先特判掉两个数相同的情况,贡献数量为 \(\frac{cnt_a*(cnt_a-1)}{2}\),贡献数为 \(\f 阅读全文
posted @ 2025-05-13 21:14 jackzhang2013 阅读(54) 评论(0) 推荐(0)
摘要: 解法 可以发现,对于每一个连通块,答案都相同 所以每次输入一个数,如果没有访问过,那么就 DFS,否则直接输出已经记录下来的答案 时间复杂度 因为每个位置最多访问一次,所以是 \(O(n^2)\) 代码 #include <bits/stdc++.h> #define int long long c 阅读全文
posted @ 2025-05-09 21:55 jackzhang2013 阅读(39) 评论(0) 推荐(0)