上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 55 下一页
摘要: "Link" 回滚莫队板子。 阅读全文
posted @ 2020-01-18 21:25 Shiina_Mashiro 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 回滚莫队 用来处理一类区间扩张容易而收缩难的莫队问题。 大概的思路如下: 还是按莫队的方法排序(不要奇偶性优化),把所有询问按照左端点所在块分类处理。 对于左端点在同一个块$[L,R]$的,先把右端点也在$[L,R]$内的暴力处理。 而其它询问的右端点必定递增,因此我们可以实时处理出$[R,r]$的 阅读全文
posted @ 2020-01-18 19:49 Shiina_Mashiro 阅读(225) 评论(0) 推荐(0) 编辑
摘要: "Link" 把条件容斥一下,先乘个二,然后都加上一端在$[l,r]$内一端在$[l,r]$外的路径条数,题目给的限制就变成了起点在$[l,r]$内的合法路径条数大于起点在$[l,r]$外的合法路径条数。 那么点分治算出以每个点为起点的合法路径条数,然后枚举右端点计算合法左端点,易知合法左端点随右端 阅读全文
posted @ 2020-01-18 10:54 Shiina_Mashiro 阅读(167) 评论(0) 推荐(0) 编辑
摘要: "Link" 一个很trivial的想法是并查集暴力维护,最后的答案是$9 10^n$,$n$是最后剩下的并查集的个数。 因为每次连边的都是一段区间到另一端区间,所以我们可以二进制拆分,把并查集的每个点拆成$\log$个点,每次把要连边的区间拆成$\log$个点直接连,最后再还原。 阅读全文
posted @ 2020-01-17 22:37 Shiina_Mashiro 阅读(92) 评论(0) 推荐(0) 编辑
摘要: "Link" 先二分答案,这样所有的数字就都变成了$0,1$。 那么区间排序就相当于区间求和再区间覆盖了。 阅读全文
posted @ 2020-01-15 07:47 Shiina_Mashiro 阅读(106) 评论(0) 推荐(0) 编辑
摘要: "Link" 先转化为最小割。 显然$A\rightarrow A,B\rightarrow B$的边最多割一条。 那么如果我们割的是$A_u\rightarrow A_{u+1},B_{v 1}\rightarrow B_v$,那么总共的代价是$\sum\limits_{i=1}^u\sum\li 阅读全文
posted @ 2020-01-14 22:46 Shiina_Mashiro 阅读(118) 评论(0) 推荐(0) 编辑
摘要: "Link" 没有偶环的图就是仙人掌,这两个条件完全等价。 而二分图是没有奇环,因此一个点集的诱导子图是二分图当且仅当这个点集的诱导子图无环。 那么我们把仙人掌上的环先抠出来,设一个环中最小的和最大的点的编号分别为$l,r$,那么$\forall i\in[1,l],j\in[r,n]$,$[i,j 阅读全文
posted @ 2020-01-14 21:57 Shiina_Mashiro 阅读(115) 评论(0) 推荐(0) 编辑
摘要: "Link" 我们可以把贡献拆成两部分计算。 对于一对$a_i,a_j(ia_j)$,如果我们重排的区间$[l,r]$满足$[i,j]\not\subseteq[l,r]$,那么它们就会产生$1$的贡献。 这里总的贡献是$\frac{\sum\limits_{i=1}^n\sum\limits_{j 阅读全文
posted @ 2020-01-14 20:25 Shiina_Mashiro 阅读(188) 评论(0) 推荐(0) 编辑
摘要: "Link" 假设现在枚举的列车是隔$d$站停一次车。 那么对于所有长度$\ge d$的区间,一定会在这个区间中停至少一次车。 对于所有长度$ include include const int N=300007,M=100007; int read(){int x=0,c=getchar();wh 阅读全文
posted @ 2020-01-14 19:46 Shiina_Mashiro 阅读(140) 评论(0) 推荐(0) 编辑
摘要: "Link" 把贡献看做前缀和,第一次出现是$+$,第二次出现是$ $,之后的都是$0$。 那么预处理一下每个点后面一个和它同色的点是哪个,然后从右往左枚举左端点,线段树维护每个右端点的答案就好了。 阅读全文
posted @ 2020-01-14 19:13 Shiina_Mashiro 阅读(126) 评论(0) 推荐(0) 编辑
上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 55 下一页