【概念】 转载连接:树状数组 讲的挺好。这两题非常的相似,查询区间的累加和、更新结点。Add(x,d) 与 Query(L,R) 的操作【题目链接:candy】 唉,也是现在才发现这题用了这个知识,当初A的第一个数据结构的题就是关于树状数组的,忘了忘了。。 Problem C: candyT...
分类:
编程语言 时间:
2015-04-28 15:35:30
阅读次数:
133
题目大意:
N个气球排成一排,从左到右编号为1~N,给N组数据,每次给2两个整数s,e,表示从s到e将
气球涂色。当涂到N次以后已经忘记了第i个气球被涂过几次颜色了。现在来计算出每个气球被
涂了几次颜色,并输出出来。
思路:
典型的更新区间,单点求值问题。直接模拟会超时,考虑用树状数组来做。单点更新中,树状
数组表示区间的和。在区间更新中,树状数组表示单个元素的变化。
这道题中,区间(s,e)加1表示将s到e的气球涂色,先进行操作Update(s,1),表示将s~N个气
球全部涂一次颜色,再进行操作Upd...
分类:
编程语言 时间:
2015-04-27 23:48:19
阅读次数:
185
题目大意:
求把一个具有N个不同元素的序列通过交换两个相邻的元素转换成升序序列需要进行的交换次数
是多少。
例如:1 2 3 5 4,只需要交换5和4,交换次数为1次。
思路:
典型的求逆序数题。其实可以直接暴力过。但是用树状数组效率比较高。对于值为a第i个元素,
需要交换次数为前i个元素中大于a的元素个数,即逆序数。
用树状数组来做,数组Tree[i]表示数字i是否在序列中出现过,如果数字i已经存在于序列中,
Tree[i] = 1,否则Tree[i] = 0。按序列从左到右将值为a的元素当作下标为a,...
分类:
编程语言 时间:
2015-04-27 23:45:36
阅读次数:
193
题目连接:zoj2112
给出n个点,两种操作,Q:询问在[l,r]内的第k大的数,C:更改第i个数位x
动态的询问第k大,使用树状数组修改和查询前缀和。
因为给出的空间小,所以可以将n个点做成一个静态的主席树,然后对于修改的值,在另一个主席树中修改,查询时同时查询这两个主席树就可以了。
#include
#include
#include
using namespace std ;...
分类:
编程语言 时间:
2015-04-27 21:44:55
阅读次数:
165
【区别】1.面向过程--->>事物比较简单时,可以用线性的思维去解决; 类似于时间顺序,单线索;2.面向对象--->>事物比较复杂时,使用简单的线性思维无法解决。 精髓,封装组合调用继承;结构为树状,便于扩展【共同点】1.面向对象和面向对象都是解决实际问题的一种思维方式;2....
分类:
其他好文 时间:
2015-04-26 21:08:20
阅读次数:
132
DOM模型在页面文档中,通过树状模型展示页面的元素和内容,其展示的方式则是通过节点(node)来实现的。3.1 访问元素3.1.1 元素属性操作Attr()可以对元素属性执行获取和设置操作,而removeAttr()方法则可以轻松删除某一指定的属性。Attr(name):获取名为name的属性Atr...
分类:
Web程序 时间:
2015-04-26 10:43:07
阅读次数:
118
Description有个脑筋急转弯是这样的:有距离很近的一高一低两座桥,两次洪水之后高桥被淹了两次,低桥却只被淹了一次,为什么?答案是:因为低桥太低了,第一次洪水退去之后水位依然在低桥之上,所以不算“淹了两次”。举例说明:假定高桥和低桥的高度分别是5和2,初始水位为1第一次洪水:水位提高到6(两个...
分类:
编程语言 时间:
2015-04-26 08:05:49
阅读次数:
199
1085 - All Possible Increasing SubsequencesPDF (English)StatisticsForumTime Limit:3 second(s)Memory Limit:64 MBAn increasing subsequence from a sequen...
分类:
编程语言 时间:
2015-04-26 01:19:26
阅读次数:
236
题目大意: 就是说,给你一个序列,然后让你求出这个序列有多少个逆序对,所谓逆序对就是对于这个序列中的元素有a[i]>a[j] 且i 时间复杂度还是O(NlogN).最后总的还是O(NlogN).代码: 1 # include 2 # include 3 # include 4 # includ...
分类:
编程语言 时间:
2015-04-26 01:19:05
阅读次数:
197