国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 霍林郭勒市| 靖江市| 河津市| 佛坪县| 神农架林区| 张掖市| 泾源县| 手游| 托克托县| 洪洞县| 连山| 延川县| 高台县| 玉山县| 凌海市| 保亭| 齐河县| 米泉市| 巴彦淖尔市| 苍梧县| 海宁市| 昭平县| 霍州市| 襄垣县| 即墨市| 宁明县| 荆州市| 济阳县| 丰县| 临泉县| 太康县| 沅江市| 和龙市| 彰武县| 新绛县| 连云港市| 石柱| 句容市| 丽水市| 东莞市| 花莲市|