考虑每头牛到达之后的影响,u到达之后,从1到其子树内的点需要放慢的都多了一个,p为u子树内点的牛ans会加1 用线段树维护dfs序,每次修改子树区间,答案直接单点查询p即可 #include<iostream> #include<cstdio> using namespace std; const int N=100005; int n,p[N],h[N],cnt,in[N],out[N],tot; struct qwe { int ne,to; }e[N<<1]; s…
Why Did the Cow Cross the Road III bzoj-4994 Usaco-2017 Feb 题目大意:给定一个长度为$2n$的序列,$1$~$n$个出现过两次,$i$第一次出现的位置记为$a_i$,第二次记为$b_i$,求满足$a_i<a_j<b_i<b_j$的个数. 注释:$1\le n\le 10^5$. 想法: 这个题有一个非常不一样的地方. 我记得我之前做过的长成这样的题大概都是第一个位置+1,第二个位置-1即可. 这个题我们只能对第一个位置进行操作.…