国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

HDU - 1556 樹狀數(shù)組(區(qū)間修改+單點(diǎn)更新)

2019-11-11 07:33:37
字體:
供稿:網(wǎng)友

題意:

n個(gè)數(shù),初始化為0,每次給一段區(qū)間的數(shù)+1,最后輸出n個(gè)數(shù)。

思路:

樹狀數(shù)組區(qū)間修改+單點(diǎn)查詢的入門題,每次更新區(qū)間[l,r]的時(shí)候,給區(qū)間左端點(diǎn)l處+1,右端點(diǎn)后一個(gè)r+1處減1,這樣,最后求i位置的值,只要從左往右求一遍前綴和,小于l的位置都沒有增量,l到r之間會(huì)有增量1,r之后+1,-1相互抵消也沒有增量。

代碼:

#include <bits/stdc++.h>using namespace std;const int MAXN = 1e5 + 10;int n;int bit[MAXN];int lowbit(int x) {    return x & -x;}void add(int x, int y) {    while (x <= n) {        bit[x] += y;        x += lowbit(x);    }}int sum(int x) {    int res = 0;    while (x) {        res += bit[x];        x -= lowbit(x);    }    return res;}int main() {    while (scanf("%d", &n), n) {        for (int i = 1; i <= n; i++) bit[i] = 0;        for (int i = 1; i <= n; i++) {            int l, r;            scanf("%d%d", &l, &r);            add(l, 1); add(r + 1, -1);        }        for (int i = 1; i <= n; i++)            PRintf("%d%c", sum(i), i == n ? '/n' : ' ');    }    return 0;}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东明县| 华宁县| 绥芬河市| 逊克县| 孝昌县| 竹北市| 惠东县| 滕州市| 宝坻区| 宾阳县| 阳谷县| 华宁县| 苗栗市| 岢岚县| 南开区| 论坛| 都兰县| 峨山| 本溪市| 古交市| 长葛市| 加查县| 崇阳县| 和顺县| 峨边| 根河市| 东台市| 子洲县| 成武县| 浪卡子县| 肥东县| 沅江市| 当涂县| 灵山县| 扎鲁特旗| 南城县| 临泉县| 蚌埠市| 中西区| 陇川县| 怀宁县|