摘要:
比较简单的线段树,查询的时候如果左子树够的话就向左递归,否则向右递归,到叶子时终止。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int N = 200001; 7 int h, w, n; 8 9 i... 阅读全文
摘要:
给定一个序列,有两种操作:对一个区间内的数字开方和求区间内所有数字的和。注意到一个即使很大的数经过没几次开方操作以后就会变成1,而1开方还是1。所以可以用线段树来维护,对于那些全部都是1的区间(即区间和等于区间长度)我们不用更新,剩下的就是区间求和了。 1 #include 2 #includ... 阅读全文
摘要:
remove的过程就像是拓扑排序,而最后统计sum可以用并查集,每个集合维护集合的size、sum。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 typ... 阅读全文
摘要:
很容易想到的做法,对于每个询问(a,b),将a之前的人放入优先队列中,然后pop上b次将答案存下来,注意询问要先按照a的大小排好序。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; ... 阅读全文