Loading

上一页 1 2 3 4 5 6 7 8 9 ··· 33 下一页
摘要: zhengrui 估计是选的之前的老题。 期望得分:200 pts 实际得分:0 pts 怎么回事呢? T1 noip t1 放博弈是吧。 仔细思考你会发现如果最后是小 A 操作那么小 A 必胜,因为不论最后两个数的奇偶性是什么,总能操作得到偶数。 接下来考虑小 B 最后操作的情况。 显然,小 A 阅读全文
posted @ 2025-11-16 17:29 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: 每次通过一些特别的手法可以知道一个长度的区间内是否有东西。 那么设 \(f_i\) 为长度为 \(i\) 的区间最少花费,那么每次将其划分成两个区间,看其中需要确定一个的最小花费是什么,这是好做的(因为确定了一个区间就肯定确定了令一个区间)。 用最短路要预处理一下这个。 阅读全文
posted @ 2025-11-15 16:47 Alexande 阅读(3) 评论(0) 推荐(0)
摘要: 推式子可以得到答案为: \[n \times m^{k - 1} - (k - 1) \times m^{k - 2} \times \frac{m(m + 1)}{2} \] 阅读全文
posted @ 2025-11-14 16:42 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 真的困难吧。 首先不难注意到设一个 \(f_{i, j}\) 表示用了前 \(i\) 个数组了 \(2j\) 层的方案数,相同的数的贡献我们可以最后除掉。 我们钦定第 \(2j\) 层必须填 \(a_i\),那么 \(a_i\) 是前 \(2j\) 层中最大的数。 转移考虑奇数层的数一定要小于上一个 阅读全文
posted @ 2025-11-14 15:42 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: https://xinyoudui.com/ac/contest/74700BE940008E9072BE29/problem/42575 看到这种题要想一想为啥给你两个式子想减而不是让你求一个式子。 结论是:\(a, v\) 相同,无论 \(i\) 是什么,其左右儿子分配方法都是相同的,那么我们最 阅读全文
posted @ 2025-11-14 14:27 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 首先设 \(f_{i, j}\) 为选出的数到 \(i\) 末尾数字为 \(j\) 的情况下乘积的最大值是多少。 然后你发现这个东西会爆 long long,一个经典做法是存对数,因为题目没让我们输出高精度,所以我们只存对数比大小记录前驱即可。 阅读全文
posted @ 2025-11-14 10:26 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 相信大家小时候都知道 \(\frac{1}{2} + \frac{1}{3} = \frac{5}{6}\)。 我刚看这个式子就发现了一股美感,然后这个题就是将这个美感拓展了一下。 给出结论是,必然存在两个数满足这个条件,不妨令这两个数的分母分别为 \(b1, b2\),分子为 \(a1, a2\) 阅读全文
posted @ 2025-11-14 10:01 Alexande 阅读(5) 评论(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 阅读(5) 评论(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 阅读(8) 评论(0) 推荐(0)
摘要: 从整体的角度想你就祭了,得从前缀的角度思考。 思考让一个前缀合法的最小操作次数,有一个很显然的结论是,我们每次将一个元素修改为序列中没有出现过的元素一定不劣。 假设我现在加入一个 \(a_i\),那么出现不合法的情况只能是 \([j, i]\) 这个子区间不合法,令 \(j\) 为最大值,那么此时我 阅读全文
posted @ 2025-11-13 10:09 Alexande 阅读(7) 评论(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 阅读(4) 评论(0) 推荐(0)
摘要: 已严肃完成今日构造大学习。 首先扔出来一个 \([1, 10^{18} - 1]\) 区间,你会发现这个区间每往右平移一个单位那么 \(f\) 的和就会加 \(1\),当然得在 \(2 \times 10^{18} - 1\) 之内,这也是我们选择这个界的原因。 然后我们只需要计算出这个区间离 \( 阅读全文
posted @ 2025-11-12 20:15 Alexande 阅读(4) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 33 下一页