树状数组
龟大仙
这个作者很懒,什么都没留下…
展开
-
CodeForces 390E Inna and Large Sweet Matrix(树状数组改段求段)
树状数组只能实现线段树区间修改和区间查询的功能,可以代替不需要lazy tag的线段树,且代码量和常数较小首先定义一个数组 int c[N]; 并清空 memset(c, 0, sizeof c);1、单点修改 : c[x] += y; 对应的函数是 change(x, y);2、求前缀和 : 对应的函数是 int sum(x)两种操作的复杂度都是O(lo原创 2015-07-16 15:06:14 · 579 阅读 · 0 评论 -
Codeforces Round #316 (Div. 2) D Tree Requests
题目链接题意:给定n个点的树,m个询问1是root,下面给出2——n每个点的父节点,每个点有一个字母下面n个小写字母给出每个点的字母。下面m行给出询问:询问形如 (u, deep) 问u点的子树中,距离根的深度为deep的所有点的字母能否在任意排列后组成回文串,能输出Yes.不能输出No根到根的deep = 1,以此类推。思路:原创 2015-08-16 10:58:51 · 843 阅读 · 0 评论 -
HDU2491 Priest John's Busiest Day
题目链接题意:有n个人要进行乒乓球比赛,每个人都一个能力值,每个人出现的次序就是他们住的位置现在要求进行一场比赛,三个人,裁判的能力值在两个选手之间,住的位置也在两个人的之间问这种比赛一共可以进行多少次思路:用树状数组做,否则TLE,先从左到右扫一遍,计算每点左边大的个数和小的个数,再从右到左扫一遍,计算每点右边大和小的个数,然后交叉相乘取和就可以了代码如下:原创 2015-08-17 23:07:34 · 693 阅读 · 0 评论