
ACM_线段树_树状数组
文章平均质量分 81
沐茈静
这个作者很懒,什么都没留下…
展开
-
HDU 2689.求逆序(树状数组)
/************************************* 题目大意:给你1——n之间的数,组成的一串数;求出这组数的逆序数(所谓逆序就是比i小的数排在i的后面); 题目解析:运用树状数组动态的对上更新tree[ ] 数组,对下统计getsum[ ]数组,每更新一次都计算出getsum(n)-getsum(x) --------(此时的getsum(n)-getsum(x)表原创 2013-05-01 17:05:17 · 771 阅读 · 0 评论 -
HDU 1556 Color the ball (线段树)
/********************************************** 题目大意:N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a 原题 题目解析: 错误分析: ***********************************************/ #include #include using names原创 2013-05-02 20:05:26 · 825 阅读 · 0 评论 -
HDU2227非递减子序列(树状数组)
题目大意:给出一列数 S = {s1, s2, s3, ...., sn},求出其非递减子序列的个数,如: S = {1, 2, 3},非递减子序列:{1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}共7个;原题链接 题目解析:由于本题N太大,用DP可能会超时O(N^2),因为是求和可以用树状数组.但s1,s2....sn可能是相同的;或者是之间原创 2013-05-16 22:18:34 · 1139 阅读 · 0 评论 -
HDU 1166敌兵布阵(线段树)
搞了好长时间,终于把这题弄懂了,下面下面就分享一下自己的做题心得吧! 题目大意: 第一行一个整数T,表示有T组数据。 每组数据第一行一个正整数N(N 接下来每行有一条命令,命令有4种形式: (1) Add i j,i和j为正整数,表示第i个营地增加j个人(j不超过30) (2)Sub i j ,i和j为正整数,表示第i个营地减少j个人(j不超过30); (3)Query i j ,i原创 2013-05-03 21:59:03 · 650 阅读 · 0 评论 -
HDU 1754I Hate It(线段树)
此题和1166敌兵布阵差不多,只需改一下输入格式,把求和改为求最大值;现在发现一旦弄明白后,这类题都是水题了,呵呵 题目大意:在每个测试的第一行,有两个正整数 N 和 M ( 0 学生ID编号分别从1编到N。 第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩。 接下来有M行。每一行有一个字符 C (只取'Q'或'U') ,和两个正整数A,B。 当C为'Q原创 2013-05-03 22:36:19 · 619 阅读 · 0 评论 -
线段树总结
同样分成四类,不好归到前四类的都分到了其他。树状数组能做,线段树都能做(如果是内存限制例外),所以也有些树状数组的题目,会标示出来,并且放到其他类里。 一、单点更新 1.hdu1166 敌兵布阵:有N个兵营,每个兵营都给出了人数ai(下标从1开始),有四种命令,(1)”Addij",表示第i个营地增加j人。(2)“Sub i j”,表示第i个营地减少j人。(3)“Query ij转载 2013-05-13 21:46:20 · 969 阅读 · 3 评论