上一页 1 2 3 4 5 6 7 8 9 10 ··· 51 下一页
摘要: 原题链接 题解 先贪心地令 \(a\) 与 \(b\) 配对,设最大的没有配对到的 \(b\) 为 \(k\) 为什么?因为这样保证了留给 \(m\) 的 \(b\) 是最大的,且原本数组的配对数量也是最优的 接下来 \(m\) 中所有小于 \(k\) 的部分可以直接与 \(k\) 配对 为什么?因 阅读全文
posted @ 2024-06-29 17:54 纯粹的 阅读(2) 评论(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 纯粹的 阅读(2) 评论(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 纯粹的 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 已知l,则r越大,f(l,r) 越小,因此具有单调性,我们可以在logn的时间里找最佳r,可是如何在 \(O(1)\) 的时间里计算f(l,r)? 由于与具有重叠不变性,所以我们可以预处理每 \(2^k\) 长度的区间,然后左端点所在的区间和右端点所在的区间与一下 code #inc 阅读全文
posted @ 2024-06-29 13:44 纯粹的 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 求有多少 \(pair\) 的 \(gcd\) 是 \(a_k\) 的倍数 \(\to\) 对于 \(a_k\) 求有多少 \(a_i,a_j\) 的 \(gcd\) 是其倍数(降次) \(\to\) 遍历 \(k\in[1,n]\) 求对于每个 \(k\),有多少 \(a_i,a_ 阅读全文
posted @ 2024-06-28 21:37 纯粹的 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 假设最优解的最大值点在x,那么我们可以把所有和x无交集的线段全部删掉,抽象地感觉,从x往两边扩散,每个点覆盖的线段数越来越少,因此最小值点不是在1,就是在m 由于已知最小值点,我们把所有和最小值点有交集的线段全部删掉,这样假如最大值点和最小值点有共同线段,不改变答案,假如没有共同线段 阅读全文
posted @ 2024-06-28 18:36 纯粹的 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 看数据范围,故想到做法,即遍历每个子集,看看每个子集是否具有合法的播放列表 code #include<bits/stdc++.h> #define lowbit(x) ((x)&(-x)) using namespace std; struct node { int a,b; }r 阅读全文
posted @ 2024-06-28 13:59 纯粹的 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 1.假设有k类球,当这k类球中数量最多的那一类的数量为m,若m不超过总数的一半,那么答案就是总数的一半+总数的奇偶性,否则答案是m 2.由于数据很小,所以可以 \(O(n^2)\) 3.我们可以对所有的球类组合用数量最多的那一类球定义 code // LUOGU_RID: 16321 阅读全文
posted @ 2024-06-28 13:49 纯粹的 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 先想想能不能暴力? 可以,先预处理异或前缀和,然后遍历所有区间 能不能优化? 对于 \(i\) 来说,以其为右端点的左端点有几个? 即对于 \(pre[i]\) 来说,有几个 \(pre[j],j<i\) 能使得异或和不小于k? 再抽象点,对于 \(a,b,k\) ,其中 \(a,k 阅读全文
posted @ 2024-06-27 19:01 纯粹的 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 深搜和广搜的结合,一次性往四个方向打标记 code #include<bits/stdc++.h> using namespace std; string s[105]; int vis[105][105]={0}; int main() { int n,m; cin>>m>>n; 阅读全文
posted @ 2024-06-27 13:26 纯粹的 阅读(2) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 51 下一页