- 博客(2)
- 收藏
- 关注
原创 Codeforces Round #703 (Div. 2)D. Max Median(二分)
题目 大意:给出一组序列 让求出一组子序列 其中位数的值最大 且长度不小于k 问中位数最大值为多少 思路:看到最大值 首先想二分 二分中位数的值 那么如何判断是否符合呢 首先我们观察中位数 假如中位数的值为a 那么可以发现大于等于a的数值的数量一定会大于小于a的数量 才会满足中位数为a 那么我们可以假定大于等于中位数的值为1 小于的为-1 用前缀和来维护最值 代码: #include<bits/stdc++.h> using namespace std; typedef long long ll
2021-02-19 15:00:04 199 1
原创 interval GCD(线段树+差分)
题目 大意:两个操作 一个操作是区间加上d 另一个是求区间的GCD 思路:首先如果区间修改使用lazytag的话 难以维护GCD 可以用数学性质gcd(x,y,z)=gcd(x,y-x,z-y) 使用差分 来将区间修改改为两个单点修改 只需要将b[l]+=d b[r+1]-=d 再维护一下gcd即可 query是为了求得区间gcd queryy是为了将差分数组复原为原值 即第一个数x 再做gcd 记得要用ll 还有一个坑点:小心越界 if(y+1<=n) change(1,y+1,-z); 代码:
2021-02-18 14:36:06 313
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人