复杂的数据结构
whxntj
这个作者很懒,什么都没留下…
展开
-
前缀和维护
前缀和维护可以是数列,也可以是矩阵。 以一个小题为例:给定n个数ai以及m个询问并每次询问一段区间的和。 要求:一个O(n+m)的做法。 要求效率如此之高,看来,强大的树状数组和线段树也无能为力了。 那么如此一来,前缀和上场了。若想时间复杂度控制在O(n+m),光读一遍就需要O(n),即每一个询问要求效率为O(1原创 2017-01-19 20:49:21 · 1991 阅读 · 1 评论 -
差值维护
差值维护和前缀和维护是一对孪生姐妹,只不过一个数组装的是前n项的和,而这个是n与n-1的差。如题:给定n个数ai,有m次操作,每个操作是给al~ar增加一个数k。最终输出操作完后的这n个数的值。 要求:一个O(n+m)的做法。for (i=1; i<=n; i++) scanf("%d",&b[i]);for (i=1; i<=m; i原创 2017-01-20 11:31:54 · 284 阅读 · 0 评论