树状数组线段树
铃仙·优昙华院·因幡
这个作者很懒,什么都没留下…
展开
-
P2894 [USACO08FEB]Hotel G(维护最长连续的1)
P2894 [USACO08FEB]Hotel G(维护最长连续的1) 传送门 题意: 给你长度为n的1串,m次操作 找到最左边长度为x连续的1,若找到区间修改为0,找不到,输出0 将l-r区间修改为1 思路: 对于1操作,由于左端点不确定,所以我们用线段树维护区间[l,r][l,r][l,r]最长的连续的1 即线段树维护 len区间最长连续空房的长度 lmx从l端点开始最长连续空房的长度 rmx从r端点开始最长连续空房的长度 之后在线段树上二分,即可完成1操作。 #include <iost原创 2021-08-30 23:00:36 · 58 阅读 · 0 评论 -
G - 01Sequence(树状数组+并查集)
G - 01Sequence 传送门 思路: 可以看出,我们应该贪心的将111的数量放在最后面开始放,我们可以用树状数组在实现区间查询修改,用并查集来支持从最右边开始单点修改的位置。 代码: #include <iostream> #include <algorithm> using namespace std; const int N=2e5+7; struct node{int l,r,x;}a[N]; int n,m,Ans[N],tr[N],f[N]; int lowb原创 2021-09-14 12:55:59 · 110 阅读 · 0 评论