树状数组
天夏123
这个作者很懒,什么都没留下…
展开
-
HDOJ-1066 敌兵布阵
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <string>using namespace std;#define maxn 50005int c[maxn], n;char ch[100];void Update(int m, i原创 2016-03-15 18:51:55 · 268 阅读 · 0 评论 -
51nod-1711 平均数
原题链接1711 平均数基准时间限制:4 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注LYK有一个长度为n的序列a。他最近在研究平均数。他甚至想知道所有区间的平均数,但是区间数目实在太多了。为了方便起见,你只要告诉他所有区间(n*(n+1)/2个区间)中第k大的平均数就行了。原创 2016-12-09 11:16:39 · 290 阅读 · 0 评论 -
51nod-1394 差和问题(树状数组)
原题链接1394 差和问题基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注有一个多重集合S(即里面元素可以有重复),初始状态下有n个元素,对他进行如下操作:1、向S里面添加一个值为v的元素。输入格式为1 v2、向S里面删除一个值为v的元素。输入格式为2 v原创 2016-11-04 20:34:08 · 203 阅读 · 0 评论 -
51nod-1107 斜率小于0的连线数量(逆序数+离散化)
原题链接1107 斜率小于0的连线数量基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注二维平面上N个点之间共有C(n,2)条连线。求这C(n,2)条线中斜率小于0的线的数量。二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y)。例如:(2,3) (3,4) (1,5原创 2016-08-13 16:38:42 · 374 阅读 · 0 评论 -
Educational Codeforces Round 10-D. Nested Segments
原题链接D. Nested Segmentstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given n segments on a原创 2016-08-18 22:12:38 · 252 阅读 · 0 评论 -
POJ-3468-A Simple Problem with Integers
树状数组,区间更新,区间求和。 设原数组为p(), delta(i)表示p数组第i个数及第i个数之和都要加上delta(i)。 sum()表示p()的前缀和 。 num()表示i*add(i)的前缀和。 若对[a, b]区间中的数加上c,则只需delta(a) += c, delta(b+1) -= c; 则a到b的区间之和 = sum[b] + segma(delta(i) * (x原创 2016-04-28 22:14:46 · 193 阅读 · 0 评论 -
Codeforces Round #348-Little Artem and Time Machine
这道题用到树状数组加上map#include <bits/stdc++.h>#define maxn 100005#define INF 1e9using namespace std;struct Node{ int a, t, x;}num[100005];map<int, int> m[100005], p;int T[100005], n;void Update(int原创 2016-04-26 22:56:51 · 266 阅读 · 0 评论 -
HDOJ-2838 Cow Sorting
一道逆序数的题。要用两个树状数组来维护,一个记录牛的数目,另一个记录牛的脾气值.一定要注意数据溢出.#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <string>using namespace std;typedef long long原创 2016-03-16 17:07:08 · 232 阅读 · 0 评论 -
HDOJ-2689 Sort it
这道题就是求逆序数。用树状数组来求解。输入一个数求此时关于这个点的逆序数 = i- Query(a).累加求和.#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <string>using namespace std;#define maxn原创 2016-03-16 16:28:10 · 209 阅读 · 0 评论 -
HDOJ-1556 Color the ball
这道题可以用树状数组解决,用到了区间更新,单点求值.设一个数组a(i)表示第i个球被染色的次数,在设一个数组p(i)表示第i个气球染色次数与第i-1个气球染色次数之差。如果要把a到b的气球染一次,则只需p[a]++,p[b+1]–,并且会发现a[i] = b[1] + b[2] +…b[i].此时就可以用树状数组来进行求和.#include <iostream>#include <cstdio>原创 2016-03-16 14:46:53 · 232 阅读 · 0 评论 -
Codeforces Round #301 (Div. 2)-E. Infinite Inversions
原题链接E. Infinite Inversionstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThere is an infi原创 2017-01-05 23:15:51 · 284 阅读 · 0 评论