Loading

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 35 下一页
摘要: https://xinyoudui.com/ac/contest/74700BE940008E9072BE29/problem/42575 看到这种题要想一想为啥给你两个式子想减而不是让你求一个式子。 结论是:\(a, v\) 相同,无论 \(i\) 是什么,其左右儿子分配方法都是相同的,那么我们最 阅读全文
posted @ 2025-11-14 14:27 Alexande 阅读(8) 评论(0) 推荐(0)
摘要: 首先设 \(f_{i, j}\) 为选出的数到 \(i\) 末尾数字为 \(j\) 的情况下乘积的最大值是多少。 然后你发现这个东西会爆 long long,一个经典做法是存对数,因为题目没让我们输出高精度,所以我们只存对数比大小记录前驱即可。 阅读全文
posted @ 2025-11-14 10:26 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: 相信大家小时候都知道 \(\frac{1}{2} + \frac{1}{3} = \frac{5}{6}\)。 我刚看这个式子就发现了一股美感,然后这个题就是将这个美感拓展了一下。 给出结论是,必然存在两个数满足这个条件,不妨令这两个数的分母分别为 \(b1, b2\),分子为 \(a1, a2\) 阅读全文
posted @ 2025-11-14 10:01 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 设 \(f_{i, j}\) 为目前有 \(i\) 个人,血量最高为 \(j\) 的方案数。那么我们 DP 就是在倒着做这个过程,每次枚举新增几个人即可。 代码: #include <bits/stdc++.h> using namespace std; #define int long long 阅读全文
posted @ 2025-11-13 20:16 Alexande 阅读(4) 评论(0) 推荐(0)
摘要: 从大到小排序,假设是第 \(i\) 列我们就从第 \(i\) 行开始填,如果不够填到上面去,你注意到此时必定会有一个 \(0\) 将上下两部分隔开,这就说明了每一行不可能相同。 阅读全文
posted @ 2025-11-13 16:25 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 首先如果一个数要搞两次操作一定是先除后减。 从大往小排序,枚举到底多少个数使用了两次操作,你发现剩下的数,令第一个 \(\ge b\) 的点为 \(p\),那么一定是一段除 + 一段减 + 一段除,且一段减必定包含 \(p\),我们预处理一个前缀最大和后缀最大即可。 阅读全文
posted @ 2025-11-13 15:08 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: 开始犯唐了。 首先建 trie,然后发现单一的 \(x\) 是好算的,我们只需要求出 trie 上每个结点的贡献即可。 首先发现每往下一位,如果 0/1 都有显然会分开,否则一定都朝一个方向走,我们只需要计算后面的贡献,因为前面显然都是 0。 比较麻烦的限制是不能超过 \(M\) 这就给了我们向下拆 阅读全文
posted @ 2025-11-13 10:36 Alexande 阅读(9) 评论(0) 推荐(0)
摘要: 从整体的角度想你就祭了,得从前缀的角度思考。 思考让一个前缀合法的最小操作次数,有一个很显然的结论是,我们每次将一个元素修改为序列中没有出现过的元素一定不劣。 假设我现在加入一个 \(a_i\),那么出现不合法的情况只能是 \([j, i]\) 这个子区间不合法,令 \(j\) 为最大值,那么此时我 阅读全文
posted @ 2025-11-13 10:09 Alexande 阅读(9) 评论(0) 推荐(0)
摘要: 这个问题看起来就不是很可做的样子,这题做法也比较非人。 首先考虑折半搜索,搜索出前 \(15\) 位的值和后 \(15\) 位的值,然后发现分别 popcount 后其差分数组对应位置和为 \(0\),用一个哈希存储即可。 阅读全文
posted @ 2025-11-13 08:39 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 设 \(f_{i, j}\) 为前 \(i\) 门功课要求有 \(j\) 个人被单调队列的方案数,转移是简单的,但是其中有一个系数: \[p_i = \sum_{j = 1}^{u_i} j^{n - r_i}(u_i - j)^{r_i - 1} \]然后你注意到 \(u_i \le 10^9\) 阅读全文
posted @ 2025-11-12 21:25 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 已严肃完成今日构造大学习。 首先扔出来一个 \([1, 10^{18} - 1]\) 区间,你会发现这个区间每往右平移一个单位那么 \(f\) 的和就会加 \(1\),当然得在 \(2 \times 10^{18} - 1\) 之内,这也是我们选择这个界的原因。 然后我们只需要计算出这个区间离 \( 阅读全文
posted @ 2025-11-12 20:15 Alexande 阅读(4) 评论(0) 推荐(0)
摘要: 比较偏套路。 首先你要知道,给我们这些信息的组合其实有用的很少,我们利用相邻两位的信息就足以规约出所有限制了。 就是分类讨论相邻位的 P/S 关系,那么就会得出一系列关于 \(a_i, a_{i - 1}\) 的限制了(与总和也有关系)。 但是我们目前还不知道总和,怎么办呢?我们枚举相邻位,如果其是 阅读全文
posted @ 2025-11-12 19:11 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 按照和 P2619 一样的方法,将连有 \(1\) 的边看作白边,其他边为黑边,随便 WQS 二分一下即可。 阅读全文
posted @ 2025-11-12 17:01 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 考虑到不同的长度类型最多只有 \(O(\sqrt n)\) 种,那么我们对于每种长度开个 set 存储一下哈希值即可做到 \(O(n \sqrt n \log n)\)。 有大受子二进制分组 + AC 自动机做法可以把 \(\sqrt n\) 干掉,不过能过就是了。 阅读全文
posted @ 2025-11-12 16:48 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: 这个题无论是 D1 还是 D2 都很具有思维含量。 首先考虑 \(a_i \le 200\) 怎么做。 考虑异或有性质 \(|a - b| \le a \oplus b \le a + b\),那么推一下就会知道目前 \(j\) 一定 \(\ge i - 400\),暴力枚举即可。 然后思考 \(a 阅读全文
posted @ 2025-11-12 15:15 Alexande 阅读(7) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 35 下一页