随笔分类 - 杂题乱刷
摘要:链接(luogu) 链接(codeforces) 有一个结论就是每次操作直接取一个存在目前最左边的最小值区间即可。 但是我不会证啊...... 大家感性理解。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? 打
阅读全文
摘要:好题。 直接上代码吧。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? 打 cf 不要用 umap!!! 记住,rating 是身外之物。 该冲正解时冲正解! Problem: 算法: 思路: */ #incl
阅读全文
摘要:题目链接 CF1977C (luogu) CF1977C (codeforces) 解题思路 首先这题有一个简单的思路,就是当这个序列的 LCM 大于 \(10^9\) 时,显然取所有数字数字是合法的。 然后我们接下来考虑 LCM 小于等于 \(10^9\) 的情况。 发现这种情况 LCM 很小,且
阅读全文
摘要:题目链接 CF1977B (luogu) CF1977B (codeforces) 解题思路 考虑通用做法。 我们发现如果直接用二进制来表示的话这个数会只包含 \(0,1\) 这两个数字。 发现这时阻碍我们构造的是连续的数字 \(1\)。 考虑消除连续的数字 \(1\)。 容易发现连续的数字 \(1
阅读全文
摘要:链接 发现这东西就很根号分治。 考虑两种情况: \(k \le 1000\),这部分直接用前缀和维护然后暴力做,时间复杂度 \(O(kq)\)。 \(k > 1000\),此时 \(n \le 500\),这部分直接预处理答案,时间复杂度 \(O(n^2 k)\)。 两个时间复杂度均正确,因此可以通
阅读全文
摘要:题目链接 CF1650E (luogu) CF1650E (codeforces) 解题思路 首先,你发现你只能改一个日期,那么我们肯定是改距离最近的旁边的两场考试,此时我们就可以将操作转化为删去一场考试并添加一场新考试的最小的休息时长,容易使用贪心 \(O(n)\) 解决。 总时间复杂度 \(O(
阅读全文
摘要:题目链接 CF1650D (luogu) CF1650D (codeforces) 解题思路 我们发现要想让第 \(i\) 个数变换一次就需要给第 \(i \sim n\) 中的一个位置做一次操作,因此我们很自然的就想到了倒推,容易证明这样是不劣的。 时间复杂度 \(O(n^2)\)。 参考代码 #
阅读全文
摘要:题目链接 CF1759F All Possible Digits(luogu) CF1759F All Possible Digits(codeforces) 题意简述 有一个长度为 \(n\) 的 \(p\) 进制数,你需要求出至少通过几次操作才可以让 \(0 \sim p - 1\) 这 \(p
阅读全文
摘要:链接 算简单题。 你发现最大值肯定可以用 \(n\) 次查出来。 然后可以证明 \(ans \le \frac{n}{k}\)。 总次数为 \(n + \frac{n}{k} \times k \le 2n\)。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心
阅读全文
摘要:大家一起来做下这个典题。 链接(at) 链接(luogu) 我们很容易可以想到处理前后缀的最长上升子序列的长度,然后容易 \(O(n \log_2 n)\) 预处理。 做完了。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不
阅读全文
摘要:题目链接 [ABC211E] Red Polyomino(luogu) [ABC211E] Red Polyomino(at) 解题思路 从第三个样例可以看出总的方案数一定很少,因此我们可以直接确定第一个被染色的格子后直接向外爆搜,搜到最后可以使用哈希判重,但光凭这样的话 \(2\) 秒钟肯定跑不过
阅读全文
摘要:题目链接 P10467 [CCC 2007] Snowflake Snow Snowflakes 解题思路 字符串哈希板子题。 思路就是我们给每个数列的所有排列都哈希一个值,然后判断是否有不同的数列的哈希值相同,如果有,就输出 Twin snowflakes found.,否则就输出 No two
阅读全文
摘要:题目链接 P10468 兔子与兔子 解题思路 字符串哈希板子题。 思路就是我们给字符串的每一个前缀和后缀都用一种特定的方式使其变为一个值,比如取一个乘数和模数,可以证明这样出错的概率极低。 参考代码 这里使用自然溢出三哈希。 #include<bits/stdc++.h> using namespa
阅读全文
该文被密码保护。
摘要:对下脑电波。 题目链接(luogu) 题目链接(at) 发现我们可以找出所有 \(x\) 当且仅当 \(x\) 为质数且 \(x \bmod 5 = 3\),这样任意五个数加起来就必定为合数了。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp
阅读全文
摘要:链接 板题。 三个定义: \(dp_i\) 表示以 \(i\) 为根节点时,其子节点深度的和; \(siz_i\) 表示以 \(i\) 为根节点时,其子树的大小; \(dep_i\) 表示以 \(1\) 为根节点时,所有节点的深度。 参考代码: 点击查看代码 /* Tips: 你数组开小了吗? 你M
阅读全文
摘要:链接 很一眼。 容易发现除非操作时影响 \(1\) 这个数字,否则答案一定改变,直接特判影响到 \(1\) 这个数字的两种情况即可。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #includ
阅读全文
摘要:感觉要好好补补 set 了。 链接 直接用 set 模拟即可。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #include<bits/stdc++.h> using namespace std; #
阅读全文
摘要:链接 参考此题解 比较有意思的期望 dp,记得多特判 0 的情况。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #include<bits/stdc++.h> using namespace std;
阅读全文
摘要:链接(luogu) 链接(at) 典题。 整除分块。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #include<bits/stdc++.h> using namespace std; #defin
阅读全文

浙公网安备 33010602011771号