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