![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树状数组
文章平均质量分 75
qian99
这个作者很懒,什么都没留下…
展开
-
UVA 11525 Permutation
题意:给出两个整数n和k,求出1~k的所有序列中,按照字典序从小到大排列后的第n个序列(从0开始编号),其中n用k个整数给出 :。思路:先考虑n个数的排列情况,如果第一个数是2的第一个序列是2、1、3……k,在它之前的所有序列的个数就等于以1开头的序列的个数,即(n-1)!,这样很容易看出第一个数为所有的数中第S1+1个数,后面的数以此类推,就可以求出整个数列。这样的话可以采用线段树,如果这个原创 2013-06-21 20:59:29 · 1061 阅读 · 0 评论 -
hdu 3874 Necklace(离线+树状数组)
题意:给出n个数,有m组询问,每组询问求区间[l,r]中不重复的数的和。思路:感觉最近看到了好几道这种题……这道题还是很简单的,维护一个树状数组(线段树),从左到右把每个数字插入进去,我们用一个pre数组记录某一个数第一次出现的位置,如果要插入的数不是第一次出现,那么就把上一次出现的那个位置的值修改成0,然后再将数插入进去,之后处理以当前位置为终点的区间的询问就行了。 代码:原创 2013-10-18 15:59:12 · 764 阅读 · 0 评论 -
hdu 4777 Rabbit Kingdom(离线+树状数组)
题意:给出n个数,有m个查询,每次查询询问区间[L,R]中最多有多少个数与区间中其他数都不互质。思路:首先预处理一下,把每个数的因子求出来(不包含1,因为1和任何数都互质),这个比较简单……然后再预处理一下第i个数向左最小的和它不互质的数的位置和第i个数向右和它不互质的数的位置(用lf[i]和rn[i]表示)。接下来的操作比较烦,不太好理解。先说下大体思路吧,把所有操作存起来,然后从左到右依次原创 2013-11-09 20:50:53 · 2937 阅读 · 8 评论 -
CF 341D - Iahub and Xors(二维树状数组)
题意:给出一个n×n的矩阵,最开始所有位置的值都为0,有两种操作,一种是将某个矩形区域的值异或v,另一种是求一个矩形区域的异或和。思路:想办法维护(1,1)(x,y)的异或和,那么矩形区域的异或和就可以根据四个位置的异或和求出。由于异或操作比较特殊,在一个区域进行异或操作,那么这个区域的某个点的(1,1)(x,y)的异或和要么要异或上v,要么异或上0。这样,我们就可以利用二维树状数组,只进行单原创 2014-03-01 21:41:37 · 1159 阅读 · 4 评论 -
CF 461C - Appleman and a Sheet of Paper (树状数组)
题意:原创 2014-08-27 09:48:42 · 978 阅读 · 0 评论 -
CF 459D - Pashmak and Parmida's problem (树状数组)
题意:给出n个数ai,定义f(l,r)原创 2014-08-16 15:34:45 · 789 阅读 · 0 评论 -
CF 369E - Valera and Queries(树状数组)
题意:给出n原创 2014-09-03 08:45:39 · 748 阅读 · 0 评论 -
hdu 4918 Query on the subtree(树分治 + 树状数组)
题意:给出一颗n个原创 2014-09-17 21:33:22 · 1750 阅读 · 0 评论