树状数组
努力前行吧
这个作者很懒,什么都没留下…
展开
-
士兵杀敌(一)
士兵杀敌(一)时间限制:1000 ms | 内存限制:65535 KB难度:3描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军现在想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。注意,南将军可能会问很多次问题。输入只有一组测试数据第一行是两个整数N,M,其转载 2015-04-02 11:54:17 · 403 阅读 · 0 评论 -
树状数组详解
在一个数组中。若你需要频繁的计算一段区间内的和,你会怎么做?,最最简单的方法就是每次进行计算,但是这需要O(N)的时间复杂度,如这个需求非常的频繁,那么这个操作就会占用大量的CPU时间,进一步想一想,你有可能会想到使用空间换取时间的方法,把每一段区间的值一次记录下来,然后存储在内存中,将时间复杂度降低到O(1),的确,对于目前的这个需求来说,已经能够满足时间复杂度上的要求,尽管带来了线性空间复杂度转载 2015-04-02 11:52:55 · 290 阅读 · 0 评论 -
士兵杀敌(二)(树状数组之插点问线问题)
士兵杀敌(二)时间限制:1000 ms | 内存限制:65535 KB难度:5描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。转载 2015-04-02 12:22:08 · 365 阅读 · 0 评论 -
士兵杀敌(四)(树状数组之插线问点问题)
士兵杀敌(四)时间限制:2000 ms | 内存限制:65535 KB难度:5描述南将军麾下有百万精兵,现已知共有M个士兵,编号为1~M,每次有任务的时候,总会有一批编号连在一起人请战(编号相近的人经常在一块,相互之间比较熟悉),最终他们获得的军功,也将会平分到每个人身上,这样,有时候,计算他们中的哪一个人到底有多少军功就是一个比较困难的事情,军师小工的转载 2015-04-06 14:28:07 · 339 阅读 · 0 评论 -
区间查询(树状数组之差点问线问题)
1110: 区间查询时间限制: 2 Sec内存限制: 32 MB提交: 162解决: 62提交状态题目描述食堂有N个打饭窗口,现在正到了午饭时间,每个窗口都排了很多的学生,而且每个窗口排队的人数在不断的变化。现在问你第i个窗口到第j个窗口一共有多少人在排队?输入输入的第一行是一个整数T,表示有T组测试数据。转载 2015-04-06 21:59:42 · 785 阅读 · 1 评论 -
Stars(一定要看,树状数组差点问线问题)
#include#include#includeconst int N=16000;const int Mx=32100;using namespace std;int tree[Mx];int ans[16000];int lowbit(int n){ return n&(-n);}int add(int i,int data){转载 2015-06-20 21:24:52 · 267 阅读 · 0 评论 -
Color the ball(树状数组之插点问线问题)
Color the ballTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11734 Accepted Submission(s): 5872Problem DescriptionN个气球排成一排,从左到右依转载 2015-06-24 13:46:53 · 426 阅读 · 0 评论