2025年3月4日

题解:P1226 【模板】快速幂

摘要: 朴素算法需要将 \(b\) 个 \(a\) 相乘,复杂度为 \(O(n)\),无法通过此题。 参考幂运算的性质,即: \[a^{m + n} = a^m \times a^n \]迁移至此题,可将 \(b\) 二进制拆分,定义函数 \(f(x)\) 为二进制下 \(b\) 的第 \(x\) 位是否为 阅读全文

posted @ 2025-03-04 18:55 zhangzirui66 阅读(5) 评论(0) 推荐(0) 编辑

2025年2月28日

题解:P1036 [NOIP 2002 普及组] 选数

摘要: \(n \le 20\) 首先想到搜索,使用 dfs 搜出所有搭配的和,判断是否为素数即可,具体见注释。 代码复杂度约为 \(O(2^n\sqrt{2^n})\),实际完全跑不满: #include<bits/stdc++.h> using namespace std; int n, k, a[25 阅读全文

posted @ 2025-02-28 21:46 zhangzirui66 阅读(8) 评论(0) 推荐(0) 编辑

题解:P1028 [NOIP 2001 普及组] 数的计算

摘要: 咕了好久…… 闲话 建议将网页放大至 125%。 计数题优先考虑 dp。 dp 状态即 \(f_i\) 表示出现一个 \(i\) 后后面的答案。 转移公式易得为: \[f_i = \sum^{j = 1}_{\lfloor \frac{i}{2} \rfloor} + 1 \]这里稍作解释,求和即为 阅读全文

posted @ 2025-02-28 21:33 zhangzirui66 阅读(3) 评论(0) 推荐(0) 编辑

2025年2月12日

CF2067C 题解

摘要: 闲话 本文同步发布在 cnblogs。 首先易得答案一定 \(\le 9\),因为一个数位增加数字 \(9\) 后,重复 \(9\) 次操作,一定出现过 \(0 \sim 9\) 的所有数字,这个手搓就可证明。 由于 \(n\) 的数据范围只有 \(10^9\),我们依次枚举仅含 \(9\) 的数, 阅读全文

posted @ 2025-02-12 19:47 zhangzirui66 阅读(17) 评论(0) 推荐(0) 编辑

CF2067B 题解

摘要: 闲话 本文同步发布在 cnblogs。 容易发现,若想要让两个袋子物品相同,每种数字都应有偶数个。 这只是根据操作一得出的结论,我们还有操作二。 对于一个数字,我们有以下的贪心策略,其中 \(b_i\) 表示 \(i\) 在数组 \(a\) 中出现的次数,即一个桶: 若 \(b_i \ge 2\), 阅读全文

posted @ 2025-02-12 18:58 zhangzirui66 阅读(12) 评论(0) 推荐(0) 编辑

2025年2月11日

题解:P11697 [ROIR 2025] 二维蚱蜢

摘要: 简单数学题,但是有些坑。 首先我们制定思路:怎样的路线才是最优路线? 显然走斜线是比较划算的,因为它相当于两次运动。 于是我们可以先走对角线,然后使用平移调整,为了方便讲述,我先给出代码: #include<bits/stdc++.h> using namespace std; int n, m, 阅读全文

posted @ 2025-02-11 17:56 zhangzirui66 阅读(17) 评论(0) 推荐(0) 编辑

2025年2月3日

诈骗系列之-CF2059C

摘要: 闲话 本文同步发布在 cnblogs。 容易观察到一件事,一个队列只需要进行一次服务,否则前一次就是浪费了。 这样我们就会发现,最终所有队列的长度为 \(0 \sim n - 1\) 的排列。 这样我们就会发现对于每个队列,只有最下面的 \(1\) 是有用的,原因放在了本文最后。 对于每个 \(0 阅读全文

posted @ 2025-02-03 01:09 zhangzirui66 阅读(13) 评论(0) 推荐(0) 编辑

诈骗系列之-CF2059B

摘要: 闲话 本文同步发布在 cnblogs。 诈骗好题,因数组开小吃掉两发罚时。 分两种情况: \(n = k\),比较简单,暴力模拟即可。 \(n \not = k\),此时思考一个问题: 如何使成本最小? 答案显而易见,设 \(a_i = x\),则使 \(a_{i + 1} \not = x + 1 阅读全文

posted @ 2025-02-03 00:51 zhangzirui66 阅读(8) 评论(0) 推荐(0) 编辑

2025年1月30日

P1004 [NOIP2000 提高组] 方格取数

摘要: 容易发现本题要求最长带权路径,遂想到 dp。 这类问题的状态很好设计,用 \(f_{i, j}\) 表示走到格子 \(a_{i, j}\) 时的最长带权路径。 由于本题需要求两次,所以增加第二次的两维,合并为 \(f_{i, j, k, l}\),代表第一次走到格子 \(a_{i, j}\),第二次 阅读全文

posted @ 2025-01-30 22:39 zhangzirui66 阅读(13) 评论(0) 推荐(0) 编辑

2025年1月12日

题解:CF1096C Polygon for the Angle

摘要: 闲话 本文同步发布在 cnblogs。 观察到角度最多只有 \(360\) 度,可以预处理。 外层循环 \(3 \sim 360\),计算答案。 正多边形可以构造外接圆,圆心角即为 \(\frac{360}{i}\),根据圆周角定理,圆周角是圆心角的一半,即 \(\frac{180}{i}\)。 内 阅读全文

posted @ 2025-01-12 11:59 zhangzirui66 阅读(6) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示