随笔分类 -  数学

摘要:题目链接 CF311D Interval Cubing 解题思路 实际上不难。 注意到特殊的模数,考虑是否会出现循环节。 然后打表发现循环节长度为 \(48\)。 那么我们显然使用分快维护块内乘了几次即可,因为有 \(48\) 的极小循环节。 块长取 \(50\) 显然是优秀的。 参考代码 ll n 阅读全文
posted @ 2025-04-09 15:19 wangmarui 阅读(18) 评论(0) 推荐(0)
摘要:怎么没人写好写的 ST 表呢。 题目链接 CF601B Lipshitz Sequence (luogu) CF601B Lipshitz Sequence (codeforces) 解题思路 其实一眼可以发现选相邻的是最优的。 证明: 若这个区间中的数字为 \([a,b,c]\),此时若选择 \( 阅读全文
posted @ 2025-01-28 16:01 wangmarui 阅读(18) 评论(0) 推荐(0)
摘要:题目链接 CF1839E Decreasing Game(*2400) 解题思路 首先我们可以发现一个性质,那就是我们如果可以将这个序列拆分成两组,使得这两组数字的和相同,则我们此时扮演后手一定可以获胜,具体的,若先手取了其中一组数字中的一个,那我们只需要取另一组数字中的任意一个目前不为 \(0\) 阅读全文
posted @ 2024-10-04 00:46 wangmarui 阅读(25) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2024-07-17 13:31 wangmarui 阅读(0) 评论(0) 推荐(0)
摘要:题目链接 CF402D Upgrading Array (luogu) CF402D Upgrading Array (codeforces) 解题思路 首先你会发现你一旦在第 \(i\) 个位置上做了一次操作后,那么你之后所有在第 \(j(i \le j)\) 个位置做的操作都是无效的,因为此时该 阅读全文
posted @ 2024-07-05 23:07 wangmarui 阅读(18) 评论(0) 推荐(0)
摘要:哎哎哎,题解区里怎么没我的做法啊 /yun。 于是就有了这篇题解。 题目链接 CF1702F Equate Multisets (luogu) CF1702F Equate Multisets (codeforces) 解题思路 首先我们发现,\(a\) 序列中的数字的末尾的 \(0\) 是无意义的 阅读全文
posted @ 2024-07-03 17:17 wangmarui 阅读(31) 评论(0) 推荐(0)
摘要:代码恢复 2024.6.5。 链接 很简单。 直接找循环节就行了。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? 打 cf 不要用 umap!!! 记住,rating 是身外之物。 该冲正解时冲正解! 阅读全文
posted @ 2024-06-05 22:14 wangmarui 阅读(37) 评论(0) 推荐(0)
摘要:题目链接 CF1977C (luogu) CF1977C (codeforces) 解题思路 首先这题有一个简单的思路,就是当这个序列的 LCM 大于 \(10^9\) 时,显然取所有数字数字是合法的。 然后我们接下来考虑 LCM 小于等于 \(10^9\) 的情况。 发现这种情况 LCM 很小,且 阅读全文
posted @ 2024-05-28 21:15 wangmarui 阅读(29) 评论(0) 推荐(0)
摘要:题目链接 CF1977B (luogu) CF1977B (codeforces) 解题思路 考虑通用做法。 我们发现如果直接用二进制来表示的话这个数会只包含 \(0,1\) 这两个数字。 发现这时阻碍我们构造的是连续的数字 \(1\)。 考虑消除连续的数字 \(1\)。 容易发现连续的数字 \(1 阅读全文
posted @ 2024-05-28 21:14 wangmarui 阅读(28) 评论(0) 推荐(0)
摘要:对下脑电波。 题目链接(luogu) 题目链接(at) 发现我们可以找出所有 \(x\) 当且仅当 \(x\) 为质数且 \(x \bmod 5 = 3\),这样任意五个数加起来就必定为合数了。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp 阅读全文
posted @ 2024-05-05 22:10 wangmarui 阅读(33) 评论(0) 推荐(0)
摘要:链接(luogu) 链接(at) 典题。 整除分块。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #include<bits/stdc++.h> using namespace std; #defin 阅读全文
posted @ 2024-04-19 11:37 wangmarui 阅读(15) 评论(0) 推荐(0)
摘要:典题。 发现问题可以变为枚举 \(i\),求出两两数 \(gcd\) 为 \(i\) 的个数,但是这样还是 \(O(n^2)\) 的。 然后可以将两边同时除以 \(i\),原式变为 暴力筛复杂度是 \(O(n\log_2(n))\) 的,加个前缀和时间复杂度为 \(O(n)\)。 点击查看代码 /* 阅读全文
posted @ 2024-04-18 19:21 wangmarui 阅读(32) 评论(0) 推荐(0)
摘要:感觉 D2 比 D1 简单 /kx /kx /kx 链接 算法一 发现一个数 \(x\) 为 \(2^k(0 \le k)\) 时一定无法拆分。 此时直接分讨即可。 算法二 发现一个数 \(x\) 满足化为二进制下数位和为 \(2\),可以拆成两个 \(2\) 的非负整数次幂的数。 此时直接分讨即可 阅读全文
posted @ 2024-03-03 02:08 wangmarui 阅读(17) 评论(0) 推荐(0)
摘要:题目链接 简单计数题。 容易看出 \(<,>\) 这两个符号一定只有 \(1\) 种选择,而 \(?\) 就有 \(i-1\) 中选择,总方案数很好推出,这样时间复杂度为 \(O(nm)\),不能通过此题,因此我们考虑用逆元优化,优化后时间复杂度 \(O(m)\)。 参考代码: 点击查看代码 /* 阅读全文
posted @ 2024-02-07 20:30 wangmarui 阅读(19) 评论(0) 推荐(0)