
树状数组
文章平均质量分 68
Unin88
这个作者很懒,什么都没留下…
展开
-
poj 2352 Stars
题目大意:在坐标上有n个星星,如果某个星星坐标为(x, y), 它的左下位置为:(x0,y0),x0按照y递增,如果y相同则x递增的顺序给出n个星星,求出所有level水平的数量。分析与总结:因为输入是按照按照y递增,如果y相同则x递增的顺序给出的, 所以,对于第i颗星星,它的level就是之前出现过的星星中,横坐标x小于等于i星横坐标的那些星星的总数量(前面的y一定比后面原创 2015-02-02 10:00:43 · 433 阅读 · 0 评论 -
61E Enemy is weak
题意:有n个数a1, a2, ..., an,问i aj > ak的三角对有多少对(3 对于一个位置j,其左边有L[j]个比aj大的数,其右边有R[j]个比aj小的数,那么,ai可从L[j]个数中取,ak可从R[j]个数中取,此时可组成L[j] * R[j]个三角对,枚举j的位置,求和。由于数据量不小,2层for以O(n^2)找L与R已超过题目所允许的时间,这里恰恰可用树状数组来求得R,原创 2015-03-31 21:11:38 · 522 阅读 · 0 评论 -
poj 2182 Lost Cows
/*分析:由给定的数据我们从后往前进行求解s[n-1],s[n-2]...s[0] 当我们求解s[k]的时候,由于s[k+1]...s[n-1]已求到,所以只要确定了s[k] 就能确定s[k+1]~s[n-1]中比s[k]小的个数num,从而k-1-num就是s[k]前面比s[k]小的个数 如果s[k]-1-num == a[k](既输入的值),则该点可以是s[k],而如何确定s[k]呢?在原创 2015-04-01 15:56:41 · 471 阅读 · 0 评论