文章分类 - 线段树
摘要:题意:往集合里面添加删除数,集合中的数是按从小到大排列的,询问下标模5等于3的数的和。解法:预先把所有出现的数离散化,建立一颗线段树,线段树每个节点存储这样几个值,f[i]表示当前这个节点表示的区间内出现的那些下标模5等于i的和,维护sz表示该段区间内出现的数的个数,没有出现的地方f为0。考虑合并两段区间,即如何由两个儿子节点推出父亲节点,考虑父亲的f[i],等于左儿子的f[i] + 右儿子的f[x], x与左儿子的sz有关,即(x + sz %5) %5 = i ;可解出x。如此查询只需要查询1号节点的f[3]即可,可以先考虑一棵平衡树,每次由儿子更新父亲也是如此,然后考虑线段树,线段树不过
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3074题意:求区间的的乘积。思路:模板题,把求区间和改为求区间乘积就行了,单点更新。/* * hdu_3074_Multiplygame.cpp * Created on: 2013年8月26日 * Author: pirate */#include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ..
阅读全文

浙公网安备 33010602011771号