树状数组&&线段树
baother0
这个作者很懒,什么都没留下…
展开
-
士兵杀敌(数状数组之插线问点)
http://acm.nyist.net/JudgeOnline/problem.php?pid=123描述 南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编号相近的人经常在一块,相互之间比较熟悉),最终他们获得的军功,也将会平分到每个人身上,这样,有时候,计算他们中的哪一个人到底有多少军功就是一个比较困难的事情,军师小工的任务就是原创 2012-03-27 22:40:42 · 546 阅读 · 0 评论 -
士兵杀敌(树状数组之插点问线)
http://acm.nyist.net/JudgeOnline/problem.php?pid=116描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。原创 2012-03-27 22:38:09 · 534 阅读 · 0 评论 -
树状数组总结
树状数组是一种更新和查找都是log(N)的一种数据结构,前两天做了一些这方面的题,总结了一下树状数组的基本几种形式。首先还是lowbit这个函数,是树状数组的基本手段,int lowbit(int x){return x&(-x);}然后还是树状数组的基本概念,树状存储方式C1 = A1C2 = A1 + A2C3 = A3C4 = A1 + A原创 2012-03-27 15:09:17 · 524 阅读 · 0 评论 -
线状数组的简单的运用
南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1随后的一行是N个整数,ai表示第i号士原创 2012-03-23 14:55:16 · 947 阅读 · 0 评论 -
树状数组
问题提出:已知数组a[],元素个数为n,现在更改a中的元素,要求得新的a数组中i到j区间内的和(1思考:对于这个问题,我们可以暴力地来解决,从a[i]一直累加到a[j],最坏的情况下复杂度为O(n),对于m次change&querry,合起来的复杂度为O(m*n),在n或m很大的情况下,这样的复杂度是让人无法忍受的.另外,如果没有元素的变更,我们完全可以存储sum[1,k](k=1,2,……)原创 2012-03-22 20:07:15 · 498 阅读 · 0 评论 -
敌兵布阵
Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。原创 2013-10-24 17:22:09 · 570 阅读 · 0 评论