树状数组有两种情况:插点问线和插线问点。这道题是插线问点。
因为树状数组最简单的作用是计算1~x的和,所以给出(a, b, c),表示(a,b)区间增加c, 那我们只需要在a点原来的基础上增加c,然后在b点原来的基础上更新-c,这样我们算最终结果的时候在(a, b)之间的就是增加了c,在区间之外的就是没有增加。
代码:
#include
#include
#define M 100000...
分类:
其他好文 时间:
2014-10-06 23:25:31
阅读次数:
184
分析:这道题因为是更新是和询问分开的,所以我们先更新,然后在将c[i]表示成1~i之间的和,之后减一下就好了。
#include
#include
#define M 1000005
#define INF 10003
int c[M];
int main(){
int x, y, z, n, s, q;
scanf("%d%d%d", &n, &s, &q);
memset(c,...
分类:
其他好文 时间:
2014-10-06 22:34:51
阅读次数:
158
这道题其实就是考试树状数组。
代码:
#include
#include
int c[1005];
int lowbit(int x){
return x&(-x);
}
int getsum(int x){
int sum = 0;
while(x){
sum += c[x]; x -= lowbit(x);
}
return sum;
}
void add(int ...
分类:
其他好文 时间:
2014-10-06 22:17:02
阅读次数:
123
经典贪心;
两种方案:一:让最快的和次最快的先过去,最快的回来,然后最慢的和次最慢的过去,次最快的回来a[0]+a[1]+a[1]+a[n-1]
二:最快的和最慢的过去,最快的回来,最快的和当前最慢的过去,最快的回来。a[0]+a[n-1]+a[0]+a[n-2]
每次取最优解。
注意:最后剩余没过的人小于等于3的时候,要特殊判断。
代码:
#include
#include
#i...
分类:
其他好文 时间:
2014-10-06 21:42:11
阅读次数:
194
最少乘法次数
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘。如24:2*2=22(第一次乘),22*22=24(第二次乘),所以最少共2次;
输入第一行m表示有m(1
每一组测试数据有一整数n(0输出输出每组测试数据所需次数s;...
分类:
其他好文 时间:
2014-10-06 12:46:40
阅读次数:
431
Kiki & Little Kiki 2
时间限制:5000 ms | 内存限制:65535 KB
难度:4
描述There are n lights in a circle numbered from 1 to n. The left of light 1 is light n, and the left of light
k (1
Change the st...
分类:
其他好文 时间:
2014-10-05 15:25:28
阅读次数:
344
/*
关键点:海伦公式
解题人:lingnichong
解题时间:2014-10-04 21:48:47
解题体会:海伦公式的使用
*/
三角形
时间限制:1000 ms | 内存限制:65535 KB
难度:1
描述
在数学中,如果知道了三个点的坐标,我们就可以判断这三个点能否组成一个三角形;如果可以组成三角形,那么我们还可以求出这个三角形的面积...
分类:
其他好文 时间:
2014-10-05 00:12:27
阅读次数:
323
笨蛋难题四
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
这些日子笨蛋一直研究股票,经过调研,终于发现xxx公司股票规律,更可喜的是 笨蛋推算出这家公司每天的股价,为了防止别人发现他的秘密。他决定对于这家公司的 股票最多买一次,现在笨蛋已经将股票价格列了出来。(这已经不是笨蛋的难题了,他已经解决 呵 呵)。只想难为难为你呀,从股票价格表上,你...
分类:
其他好文 时间:
2014-10-04 23:04:37
阅读次数:
142