随笔分类 - 贪心
摘要:链接 (Link) 一个好题。 就是说,你直接先求出这个数列的异或和,然后发现之后就可以两两匹配,如果无法匹配就默认这个数为 \(0\),然后做完了。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? 打 cf
阅读全文
摘要:链接(luogu) 链接(codeforces) 有一个结论就是每次操作直接取一个存在目前最左边的最小值区间即可。 但是我不会证啊...... 大家感性理解。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? 打
阅读全文
摘要:题目链接 CF1977C (luogu) CF1977C (codeforces) 解题思路 首先这题有一个简单的思路,就是当这个序列的 LCM 大于 \(10^9\) 时,显然取所有数字数字是合法的。 然后我们接下来考虑 LCM 小于等于 \(10^9\) 的情况。 发现这种情况 LCM 很小,且
阅读全文
摘要:题目链接 CF1977B (luogu) CF1977B (codeforces) 解题思路 考虑通用做法。 我们发现如果直接用二进制来表示的话这个数会只包含 \(0,1\) 这两个数字。 发现这时阻碍我们构造的是连续的数字 \(1\)。 考虑消除连续的数字 \(1\)。 容易发现连续的数字 \(1
阅读全文
摘要:题目链接 CF1650E (luogu) CF1650E (codeforces) 解题思路 首先,你发现你只能改一个日期,那么我们肯定是改距离最近的旁边的两场考试,此时我们就可以将操作转化为删去一场考试并添加一场新考试的最小的休息时长,容易使用贪心 \(O(n)\) 解决。 总时间复杂度 \(O(
阅读全文
摘要:题目链接 CF1650D (luogu) CF1650D (codeforces) 解题思路 我们发现要想让第 \(i\) 个数变换一次就需要给第 \(i \sim n\) 中的一个位置做一次操作,因此我们很自然的就想到了倒推,容易证明这样是不劣的。 时间复杂度 \(O(n^2)\)。 参考代码 #
阅读全文
摘要:链接 算简单题。 你发现最大值肯定可以用 \(n\) 次查出来。 然后可以证明 \(ans \le \frac{n}{k}\)。 总次数为 \(n + \frac{n}{k} \times k \le 2n\)。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心
阅读全文
摘要:对下脑电波。 题目链接(luogu) 题目链接(at) 发现我们可以找出所有 \(x\) 当且仅当 \(x\) 为质数且 \(x \bmod 5 = 3\),这样任意五个数加起来就必定为合数了。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp
阅读全文
摘要:链接 很一眼。 容易发现除非操作时影响 \(1\) 这个数字,否则答案一定改变,直接特判影响到 \(1\) 这个数字的两种情况即可。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #includ
阅读全文
摘要:链接 妙妙构造题。 很容易可以看出要构造出一种可以交换相邻两格数的操作。 这部分显然可以写个爆搜找到规律。 然后进行暴力操作即可。 代码也不长。 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #incl
阅读全文
摘要:链接 构造思路: 考虑直接构造 \(100 \times 100\) 的方格,然后前 \(50 \times 100\) 为黑格,后 \(50 \times 100\) 为白格,构造形如以下方式即可。 #.#.#.#.#.#.#.# ............... #.#.#.#.#.#.#.# .
阅读全文
摘要:链接 套路题。 最小值: 排序后直接分讨即可。 最大值: 排序后枚举开头为 \(a_1\),\(a_n\) 的情况后双指针贪心即可。 代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #includ
阅读全文
摘要:感觉 D2 比 D1 简单 /kx /kx /kx 链接 算法一 发现一个数 \(x\) 为 \(2^k(0 \le k)\) 时一定无法拆分。 此时直接分讨即可。 算法二 发现一个数 \(x\) 满足化为二进制下数位和为 \(2\),可以拆成两个 \(2\) 的非负整数次幂的数。 此时直接分讨即可
阅读全文
摘要:链接 花花场,被前两题给背刺了。 还是来讲下这题思路吧。 算法一 随机选取两个数,正确的概率约为 \(1\%\)。 期望得分 \(0\)。 算法二 两两之间都选一遍,需要选 \(n \times (n-1) /2\) 次。 然后建一个完全图容易求出每个数的大小。 期望得分 \(0\)。 算法三 正片
阅读全文
摘要:题目链接 P8866 [NOIP2022] 喵了个喵 解题思路 这种题放在 T2 还是把总得分设为四道题目的得分的异或值吧。 调了一个下午。 测试点 \(1 \sim 3\): 一个显然的结论,每个栈最多有两个数字的时候最优。 我们可以留下一格栈作为辅助栈,用来消除用,其他栈随便放,容易发现,一个元
阅读全文
摘要:链接 下位蓝。 题目可以用尺取法 + 区间加的方式来做。 参考代码: 点击查看代码 /* Tips: 你数组开小了吗? 你MLE了吗? 你觉得是贪心,是不是该想想dp? 一个小时没调出来,是不是该考虑换题? */ #include<bits/stdc++.h> using namespace std
阅读全文
摘要:盲猜没人用此做法 题目链接 CF1927D Find the Different Ones! 解题思路 考虑分块,在一块内的数当且仅当他们是连续的且权值相同,并记录下他们的左右端点同时记录每一个数在哪个块内,对于每个块维护它的左右端点,然后对于每组询问如果 \(l,r\) 在同一个块内,那么 \(l
阅读全文

浙公网安备 33010602011771号