摘要:#题意 一个1e5的double数组,前面大的元素会挡住后面小的元素,有1e5个操作,每次改变一个元素的值,问你每次改完之后有多少元素没有被挡 #思路 考虑分块,对每一个块维护一个单独的答案,那么总的答案一定是各块单独的答案的一部分合起来 每次修改之后只需要重新计算本块的答案,并且对每一块二分接上的 阅读全文
posted @ 2020-05-28 16:59 wrjlinkkkkkk 阅读(6) 评论(0) 推荐(0) 编辑
摘要:#题意 给你一组正整数,从i位置可以走到i+a[i],两种操作: 1.从x走几步能走出n 2.将某个a[x]改为y #思路 考虑分块,分块大小为根号n,那么每个点需要处理:出本块需要的步数、出本块到达的地方 对于每一块内的元素,维护的这两个信息都是独立的 那么对于操作1:模拟一遍块间移动即可,复杂度 阅读全文
posted @ 2020-05-27 22:36 wrjlinkkkkkk 阅读(5) 评论(0) 推荐(0) 编辑
摘要:#题意 1e6的数组,1e6组询问,每次问你[l,r]内有多少个数出现超过了1次 空间128M #思路 主席树可以很轻松地解决这个问题,但是1e6,128M显然空间是不够的,所以我们要找别的方法 数组长度有1e6,根号级的算法也不能使用 我们考虑离线: 在左端点不变时,考虑用树状数组维护右端点在不同 阅读全文
posted @ 2020-05-26 13:04 wrjlinkkkkkk 阅读(10) 评论(0) 推荐(0) 编辑
摘要:题意 100 100的网格,每个格子有一个初始值,每次操作可以使一个格子的数 1,问你最少多少次操作后存在一条(只往右和下的)(从左上角到右下脚每格递增1的)路径。 格子权值至多1e15,保证答案存在 思路 路径长度显然是固定的,如果路径中有一个基准,那么每个格子应该是多少也是确定的 而路径中一定是 阅读全文
posted @ 2020-05-16 11:45 wrjlinkkkkkk 阅读(46) 评论(0) 推荐(0) 编辑
摘要:题意 一颗1e5的数,1e5的询问,两种操作: 1.给x到y的所有点染成一种颜色 2.问x到y的路径上有多少段相同的颜色 思路 先考虑序列上,12操作均可以使用线段树来处理 需要注意的是,询问时只有在线段树上往两边同时下传的时候,才需要判断是否x需要答案 1 所以写的时候分三段写比较方便 阅读全文
posted @ 2020-05-14 12:34 wrjlinkkkkkk 阅读(11) 评论(0) 推荐(0) 编辑
摘要:题意 构造了一个数组,其中每相邻三个数(a,b,c)为一组,满足a=id){ now=i;break; } } ll x = po[now 1]+id s(now 1) 1; vectorv; ll X = x; while(X){ v.pb(X%4);X/=4; } ll y = 0; rever 阅读全文
posted @ 2020-04-13 20:27 wrjlinkkkkkk 阅读(37) 评论(0) 推荐(0) 编辑
摘要:题意 1e5的数组,1e5的询问,每次给你的长度相同(v; int getid(ll x){ return lower_bound(v.begin(),v.end(),x) v.begin()+1; } sets[maxn]; int main() { po[0]=1; scanf("%d %d % 阅读全文
posted @ 2020-03-30 00:14 wrjlinkkkkkk 阅读(19) 评论(0) 推荐(0) 编辑
摘要:题意 1e3 1e3的网格,每个格子有一种颜色,共有40种颜色,每个格子可以上下左右走,相同颜色的格子可以一步传送到 1e5组询问,每次给你起点和终点st,问你最少几步走到 思路 如果不使用传送,答案就是曼哈顿距离 否则的话我们可以枚举中间传送的那种颜色i,答案就是(s到颜色i的最短路)+(y到颜色 阅读全文
posted @ 2020-03-06 23:38 wrjlinkkkkkk 阅读(36) 评论(0) 推荐(0) 编辑
摘要:题意 5e4个可重集合,初试全空,5e4个操作: 1.在第[l,r]集合里加入一个数c 2.问[l,r]所有集合的并的第k大数 思路 发现很多题解都写得权值线段树套区间线段树啊,我觉得这题反过来套比较直白吧。。 不过写了一半陷入了奇怪的思维漩涡里。。 就跟着题解写了个权值套区间线段树,在luogu上 阅读全文
posted @ 2020-03-01 01:35 wrjlinkkkkkk 阅读(19) 评论(0) 推荐(0) 编辑
摘要:题意 给你长度为500的串a,b,问你是否存在一种b的划分方式,使得b的两个子串是a的两个不重合的子序列 思路 先枚举分割点 记$f[i][j]$为a串处理到i,b串处理到j时,b串的两个子串个匹配成功了多少 那么我们先枚举n,再枚举m,再维护一下$b_1$串匹配了i个时$b_2$串匹配成功的最大值 阅读全文
posted @ 2020-02-16 17:03 wrjlinkkkkkk 阅读(36) 评论(0) 推荐(0) 编辑