摘要: 算法 特殊性质 显然链的情况就是括号匹配 因此显然有代码 代码 #include <bits/stdc++.h> #define int long long const int MAXN = 5e5 + 20; int n; std::string Braket; int fa[MAXN]; boo 阅读全文
posted @ 2024-10-07 21:15 Yorg 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 题面 题面下载 算法 转化题意 说白了就是给了你一堆点,让你数这种折线有多少个 (严格向下走,并且横坐标之间的差越来越小) 看着像一种在 y 轴方向排序的 dp 但是由于是折线, 所以需要加一维来判断转向 dp 设计 状态设计 \(dp_{i, 0/1}\) 表示第 i 个点, 是向左下还是右上 状 阅读全文
posted @ 2024-10-07 18:43 Yorg 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 题面 题目下载 算法 考虑当 \(k\) 确定的时候如何求答案, 显然对于所有形如 \([ak, (a+1)k)\) 的值域区间, 最大值一定是最优的 似乎怎么都是 \(O(n^2)\) 的算法 观察到 \(a_i\) 的值域比较小, 所以考虑桶 显然对于一段区间 \([L, R]\) 我们可以推出 阅读全文
posted @ 2024-10-07 17:16 Yorg 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 思路 不想打了 代码 后面再打 总结 写都没写怎么搞 阅读全文
posted @ 2024-10-07 15:21 Yorg 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 算法 暴力 容易发现双指针可以找到每一个区间 \([L, R]\), 使得这个区间覆盖 \(1\) ~ \(n\) 的每一个数, 也即区间外覆盖 \(1\) ~ \(n\) 的每一个数, 这是 \(O(n)\) 的 考虑判断 对于两个数列 \(A\), \(B\) 显然, 在 \(A\) 中先取出的 阅读全文
posted @ 2024-10-07 15:07 Yorg 阅读(17) 评论(0) 推荐(0) 编辑