2012年11月17日

hdu 1166 敌兵布阵 (树状数组)

摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166分析:第一次接触到线段树,上网看了一些资料,发现这道题可以用树状数组来代替线段树解决,似乎用起来更方便,于是乎就找了树状数组的资料来看,这里有一个是我从网上摘抄的树状数组的资料 树状数组不是很齐全,但是初学者已经够用了。里边有基本的模板代码。这道题是中文题目,题意很简单,就是典型的树状数组,线段树题目。树状数组解法#include <iostream>#include <cstdio>#include <cstring>#include <algori 阅读全文

posted @ 2012-11-17 20:21 NewPanderKing 阅读(310) 评论(0) 推荐(0) 编辑

树状数组

摘要: 首先对于树状数组和线段树做一对比:在很多的情况下,线段树都可以用树状数组实现.凡是能用树状数组的一定能用线段树.当题目不满足减法原则的时候,就只能用线段树,不能用树状数组.例如数列操作如果让我们求出一段数字中最大或者最小的数字,就不能用树状数组了。树状数组:树状数组是对一个数组改变某个元素和求和比较实用的数据结构。两中操作都是O(logn)。在解题过程中,我们有时需要维护一个数组的前缀和S[i]=A[1]+A[2]+...+A[i]。但是不难发现,如果我们修改了任意一个A[i],S[i]、S[i+1]...S[n]都会发生变化。可以说,每次修改A[i]后,调整前缀和S[]在最坏情况下会需要O( 阅读全文

posted @ 2012-11-17 19:11 NewPanderKing 阅读(623) 评论(0) 推荐(0) 编辑

导航