随笔分类 -  杂题乱刷

摘要:典题。 发现问题可以变为枚举 \(i\),求出两两数 \(gcd\) 为 \(i\) 的个数,但是这样还是 \(O(n^2)\) 的。 然后可以将两边同时除以 \(i\),原式变为 暴力筛复杂度是 \(O(n\log_2(n))\) 的,加个前缀和时间复杂度为 \(O(n)\)。 点击查看代码 /* 阅读全文
posted @ 2024-04-18 19:21 wangmarui 阅读(32) 评论(0) 推荐(0)
摘要:题目链接(luogu) 题目链接(cf) 水 2400。 首先我们容易看出,答案具有单调性,然后无法使用数据结构进行优化,这时我们可以直接根号分治,发现总是有一段连续的区间数是相同的,因此我们直接根号分治套二分即可 AC。 参考代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 阅读全文
posted @ 2024-04-12 18:43 wangmarui 阅读(27) 评论(0) 推荐(0)
摘要:链接 妙妙构造题。 很容易可以看出要构造出一种可以交换相邻两格数的操作。 这部分显然可以写个爆搜找到规律。 然后进行暴力操作即可。 代码也不长。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #incl 阅读全文
posted @ 2024-04-01 20:51 wangmarui 阅读(41) 评论(0) 推荐(0)
摘要:链接 构造思路: 考虑直接构造 \(100 \times 100\) 的方格,然后前 \(50 \times 100\) 为黑格,后 \(50 \times 100\) 为白格,构造形如以下方式即可。 #.#.#.#.#.#.#.# ............... #.#.#.#.#.#.#.# . 阅读全文
posted @ 2024-04-01 19:29 wangmarui 阅读(25) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2024-03-26 12:45 wangmarui 阅读(2) 评论(0) 推荐(0)
摘要:先上 AC 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #include<bits/stdc++.h> using namespace std; #define map unordered_m 阅读全文
posted @ 2024-03-13 12:36 wangmarui 阅读(36) 评论(0) 推荐(0)
摘要:题目链接 P1708 解题思路 解法一: 考虑预处理,这部分可以直接打表。 其他题解这部分讲的比较详细了,在此不再赘述。 期望得分 \(100\) 分。 解法二: 考虑数位 dp。 这里采用记搜的写法。 dfs(last,sum,maxsum,_1) 分别表示还需要枚举几位数,目前枚举的数位和,可以 阅读全文
posted @ 2024-03-12 18:09 wangmarui 阅读(67) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2024-03-12 18:07 wangmarui 阅读(0) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2024-03-06 21:42 wangmarui 阅读(0) 评论(0) 推荐(0)
摘要:E1 链接 一眼题。 直接预处理即可。 时间复杂度 \(O(n \log_2(n))\)。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #include<bits/stdc++.h> usin 阅读全文
posted @ 2024-03-05 21:10 wangmarui 阅读(21) 评论(0) 推荐(0)
摘要:链接 套路题。 最小值: 排序后直接分讨即可。 最大值: 排序后枚举开头为 \(a_1\),\(a_n\) 的情况后双指针贪心即可。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #includ 阅读全文
posted @ 2024-03-03 14:41 wangmarui 阅读(20) 评论(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\%\)。 期望得分 \(0\)。 算法二 两两之间都选一遍,需要选 \(n \times (n-1) /2\) 次。 然后建一个完全图容易求出每个数的大小。 期望得分 \(0\)。 算法三 正片 阅读全文
posted @ 2024-03-01 01:35 wangmarui 阅读(33) 评论(0) 推荐(0)
摘要:题目链接 P8866 [NOIP2022] 喵了个喵 解题思路 这种题放在 T2 还是把总得分设为四道题目的得分的异或值吧。 调了一个下午。 测试点 \(1 \sim 3\): 一个显然的结论,每个栈最多有两个数字的时候最优。 我们可以留下一格栈作为辅助栈,用来消除用,其他栈随便放,容易发现,一个元 阅读全文
posted @ 2024-02-25 16:04 wangmarui 阅读(285) 评论(0) 推荐(0)
摘要:题目链接 题目链接(CF) 题目链接(luogu) 题意简述 有一个 \(n \times m\) 的矩阵,矩阵上的数字 \(1 \sim n \times m\) 自上到下,自左到右,对于每次操作,你可以向上,下,左或右移动一步,你需要构造出符合操作序列的 \(n\) 和 \(m\) 或报告无解。 阅读全文
posted @ 2024-02-23 20:55 wangmarui 阅读(26) 评论(0) 推荐(0)
摘要:链接 下位蓝。 题目可以用尺取法 + 区间加的方式来做。 参考代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #include<bits/stdc++.h> using namespace std 阅读全文
posted @ 2024-02-17 19:28 wangmarui 阅读(21) 评论(0) 推荐(0)
摘要:小模拟 阅读全文
posted @ 2024-02-15 19:44 wangmarui 阅读(41) 评论(0) 推荐(0)
摘要:简单dp 阅读全文
posted @ 2024-02-14 22:26 wangmarui 阅读(21) 评论(0) 推荐(0)
摘要:贪心题 阅读全文
posted @ 2024-02-13 18:50 wangmarui 阅读(41) 评论(0) 推荐(0)
摘要:题目链接 最典的状压 dp 了。 直接枚举每个状态然后用 01 背包的方式做即可。 时间复杂度 \(O(n2^m)\)。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #include<bits 阅读全文
posted @ 2024-02-10 22:52 wangmarui 阅读(31) 评论(0) 推荐(0)