摘要: 原题链接 题解 转换成有向无环图,可以发现,我们先将入度为0的节点输出总是不劣的 对于环,无论从哪里开始只会改变一个节点的双倍奖励,所以从奖励最小的点开始 由于存在多个环(见样例),所以我们可以用堆来维护所有点 code #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2024-06-29 22:16 纯粹的 阅读(46) 评论(0) 推荐(0)
摘要: 原题链接 题解 1.注意,路的数量总和不超过 \(2·10^5\),所以如果路没有时间限制,和普通最短路没有区别 2.由于可以原地等待,所以早到一个点一定比晚到更优 3.每到一个点,遍历所有邻边,如果这条边能在之后激活,那么看看经过这条边到达对面点的时间是否最少 code #include<bits 阅读全文
posted @ 2024-06-29 21:11 纯粹的 阅读(25) 评论(0) 推荐(0)
摘要: 原题链接 题解 状态压缩,这一群人过去了,遍历所有上一组过去的人 code #include<bits/stdc++.h> #define lowbit(x) ((x)&(-x)) using namespace std; int dp[300000]; int w[20],t[20]; int t 阅读全文
posted @ 2024-06-29 19:11 纯粹的 阅读(21) 评论(0) 推荐(0)
摘要: 原题链接 题解 先贪心地令 \(a\) 与 \(b\) 配对,设最大的没有配对到的 \(b\) 为 \(k\) 为什么?因为这样保证了留给 \(m\) 的 \(b\) 是最大的,且原本数组的配对数量也是最优的 接下来 \(m\) 中所有小于 \(k\) 的部分可以直接与 \(k\) 配对 为什么?因 阅读全文
posted @ 2024-06-29 17:54 纯粹的 阅读(16) 评论(0) 推荐(0)
摘要: 原题链接 题解 \(a_{i-1}·2^{k_{i-1}}\leq a_{i}·2^{k_i}\) \(k_i\geq log_2(a_{i-1})-log_2(a_i)+k_{i-1}\) 这里log2不能减,要在里面除,太坑了 code #include<bits/stdc++.h> #defi 阅读全文
posted @ 2024-06-29 17:07 纯粹的 阅读(19) 评论(0) 推荐(0)
摘要: 原题链接 题解 只要存在一对线段不相交就输出yes,显然空集合以及最小的r大于等于最大的l时一定不存在 code #include<bits/stdc++.h> using namespace std; int main() { int q; cin>>q; multiset<int> l,r; w 阅读全文
posted @ 2024-06-29 16:14 纯粹的 阅读(15) 评论(0) 推荐(0)
摘要: 原题链接 题解 已知l,则r越大,f(l,r) 越小,因此具有单调性,我们可以在logn的时间里找最佳r,可是如何在 \(O(1)\) 的时间里计算f(l,r)? 由于与具有重叠不变性,所以我们可以预处理每 \(2^k\) 长度的区间,然后左端点所在的区间和右端点所在的区间与一下 code #inc 阅读全文
posted @ 2024-06-29 13:44 纯粹的 阅读(17) 评论(0) 推荐(0)