树状数组模板
复习一下,以免忘记
// 树状数组维护的是一个前缀和
#include <bits/stdc++.h>
#define mem(a, b) memset(a, b, sizeof a)
#pragma warning (disable:6031)
#pragma warning (disable:4996)
using namespace std;
const int N = 310;
int tree[N];
int n;
int lowbit(int x) {
	return x & -x;
}
void add(int x, int d) {
	while (x <= n) {
		tree[x] += d;
		x += lowbit(x);
	}
}
int query(int x){
	int res = 0;
	while (x) {
		res += tree[x];
		x -= lowbit(x);
	}
	return res;
}
int main()
{
	mem(tree, 0);
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) {
		add(i, i);
	}
	printf("%d\n", query(n));
	return 0;
}
本文来自博客园,作者:correct,转载请注明原文链接:https://www.cnblogs.com/correct/p/12861976.html

                
            
        
浙公网安备 33010602011771号