
二分
文章平均质量分 75
Miao_zc
膜Hz
展开
-
bzoj3316: JC loves Mkk
首先看到环,考虑变成链上询问。由于题目要求平均值最大,所以无法直接使用线段树维护。先二分平均值,问题就能转化为能否找到L~R的一列数和大于等于零。这个很像单调队列,只要对奇偶分别维护单调队列就可以了。#include#include#define N 200005#define ll long longusing namespace std;ll n,m,L,R,a[N],q[2][原创 2016-08-23 12:00:46 · 585 阅读 · 0 评论 -
bzoj3672: [Noi2014]购票
为什么我这么慢!!!这道题大概有两种思路,树分治和线段树。树分治:使用类似cdq的方式,1:找重心,分裂,2:work(根所在的树)3:用重心到根的点的答案更新重心的子树,4:work(重心的子树)。更新的时候维护一个下凸壳,在下凸壳上二分即可。(我写了这个)线段树:同样需要维护下凸壳,考虑在dfs时动态维护当前节点到根路径上的区间下凸壳,这个用线段树在每个节前维护一个支持回撤的单调栈原创 2016-12-12 15:15:26 · 685 阅读 · 1 评论 -
loj#6169. 相似序列
最近口胡了一个随机的idea,结果在loj上连出3道类似的题。。我的思路是这样的:给每个数一个随机权值,如果两个序列的数的随机权值异或和相等可以认为这两个序列排序后相同。考虑主席树,对于两个区间l~r的数,如果递归不同的部分,直到两半都相同。然后就能得到那两个不同的数,再判断一下即可。#include#define ll long long#define N 100005#defin原创 2017-06-23 21:35:03 · 829 阅读 · 1 评论