摘要: 给一幅无权无向无环图并给出它的一颗生成树,要求出一个最小割,并且最小割中有且仅有一条树边。 一条从u到v的非树边会让它从树上u到v路径上的边成为最小割的代价+1,所以考虑树链剖分把所有非树边作为更新来更新路径上边的代价。 因为只需要在最后找出最小的那条边,所以直接差分即可。 #include <bi 阅读全文
posted @ 2018-09-14 15:01 LMissher 阅读(166) 评论(0) 推荐(0)
摘要: 区间加一个数以及求区间GCD 由性质gcd(a,b)=gcd(a,b-a)可得区间gcd可变为: gcd( a[l], a[l+1], a[l+2],..., a[r] ) = gcd( a[l], a[l+1] - a[l] , a[l+2] - a[l+1] ,..., a[r] - a[r-1 阅读全文
posted @ 2018-09-14 13:51 LMissher 阅读(220) 评论(0) 推荐(0)
摘要: 给n个数,再给q次询问,每次询问回答区间[l,r]的a[l]%a[l+1]%a[l+2]%a[l+3]....%a[r]的答案。 可以知道只有当一个数遇到一个比它小的数答案才会改变且取模最多log次就会停止,所以用线段树暴力寻找一个数右边第一个比它小的数即可。 #include <bits/stdc 阅读全文
posted @ 2018-09-14 13:43 LMissher 阅读(179) 评论(0) 推荐(0)
摘要: 给n个数,q次询问,每次问区间[l,r]的GCD以及整个区间内有多少个gcd为此的区间。 求区间gcd很好求,而有多少个这样的gcd,可以预处理出区间所有的gcd,因为一个n个数的区间最多有logn种gcd,所有暴力枚举即可。 #include <bits/stdc++.h> #define pb 阅读全文
posted @ 2018-09-14 13:38 LMissher 阅读(96) 评论(0) 推荐(0)