树状数组简介



Similar documents
龚 亚 夫 在 重 新 思 考 基 础 教 育 英 语 教 学 的 理 念 一 文 中 援 引 的 观 点 认 为 当 跳 出 本 族 语 主 义 的 思 维 定 式 后 需 要 重 新 思 考 许 多 相 连 带 的 问 题 比 如 许 多 发 音 的 细 微 区 别 并 不 影 响 理 解 和

类 似 地, 又 可 定 义 变 下 限 的 定 积 分 : ( ). 与 ψ 统 称 为 变 限 积 分. f ( ) d f ( t) dt,, 注 在 变 限 积 分 (1) 与 () 中, 不 可 再 把 积 分 变 量 写 成 的 形 式 ( 例 如 ) 以 免 与 积 分 上 下 限 的

说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度, 对 2015 年 春 季 期 教 运 行 基

《C语言基础入门》课程教学大纲

第二讲 数列

何 秋 琳 张 立 春 视 觉 学 习 研 究 进 展 视 觉 注 意 视 觉 感 知

Microsoft Word - 第7章 图表反转形态.doc

<4D F736F F D C4EAB9A4B3CCCBB6CABFCAFDD1A7D7A8D2B5BFCEBFBCCAD4B4F3B8D9D3EBD2AAC7F3>

<433A5C446F63756D656E E E67735C41646D696E F725CD7C0C3E65CC2DBCEC4CFB5CDB3CAB9D3C3D6B8C4CFA3A8BCF2BBAFA3A95CCAB9D3C3D6B8C4CF31302D31392E646F63>

国债回购交易业务指引

导 数 和 微 分 的 概 念 导 数 的 几 何 意 义 和 物 理 意 义 函 数 的 可 导 性 与 连 续 性 之 间 的 关 系 平 面 曲 线 的 切 线 和 法 线 导 数 和 微 分 的 四 则 运 算 基 本 初 等 函 数 的 导 数 复 合 函 数 反 函 数 隐 函 数 以


用节点法和网孔法进行电路分析

修改版-操作手册.doc

马 克 思 主 义 公 正 观 的 基 本 向 度 及 方 法 论 原 则!! # #

Microsoft Word - 第3章.doc

教师上报成绩流程图

第2章 数据类型、常量与变量

深圳市新亚电子制程股份有限公司

HSK( 一 级 ) 考 查 考 生 的 日 常 汉 语 应 用 能 力, 它 对 应 于 国 际 汉 语 能 力 标 准 一 级 欧 洲 语 言 共 同 参 考 框 架 (CEF) A1 级 通 过 HSK( 一 级 ) 的 考 生 可 以 理 解 并 使 用 一 些 非 常 简 单 的 汉 语

登录、注册功能的测试用例设计.doc

i 1) 系 统 运 作 前 设 定 *1. [2.1 网 页 主 机 名 称 设 定 ] -- 设 定 校 务 系 统 的 主 机 IP 地 址, 以 供 其 他 个 人 电 脑 连 接 及 使 用 该 系 统 *2. [2.3.1 输 入 / 修 改 学 校 资 料 ] -- 输 入 系 统 使

第 期 李 伟 等 用 方 法 对 中 国 历 史 气 温 数 据 插 值 可 行 性 讨 论

!!!!!!!!!!

精 勤 求 学 自 强 不 息 Born to win! 解 析 : 由 极 限 的 保 号 性 知 存 在 U ( a) 当 a 时 f ( ) f ( a) 故 f ( ) 在 点 a 不 取 极 值 f ( ) f ( a) f ( ) f ( a) lim lim a a a a ( a)


I

,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,, ( ),,,, (, : ),, :,

《应用数学Ⅰ》教学大纲

抗 日 战 争 研 究 年 第 期

这 对 大 兔 都 要 繁 殖 于 是 第 个 月 就 比 第 个 月 增 加 了 对 兔 这 样 我 们 就 有 这 是 一 个 连 续 三 个 月 的 兔 子 对 数 之 间 满 足 的 关 系 式 我 们 又 注 意 到 第 个 月 和 第 个 月 都 只 有 一 对 兔 也 就 是 说!!

一 开 放 性 的 政 策 与 法 规 二 两 岸 共 同 的 文 化 传 承 三 两 岸 高 校 各 自 具 有 专 业 优 势 远 见 杂 志 年 月 日

 编号:


一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创 新 能 力, 综 合 运 用 所 学 知 识 发 现 问 题, 分 析 问 题 和 解 决

第三章 作业

课程类 别

Microsoft Word - 文件汇编.doc

2. 本 次 修 改 后, 投 资 者 申 购 新 股 的 持 有 市 值 要 求 市 值 计 算 规 则 及 证 券 账 户 使 用 的 相 关 规 定 是 否 发 生 了 变 化? 答 : 未 发 生 变 化 投 资 者 申 购 新 股 的 持 有 市 值 是 指, 以 投 资 者 为 单 位

定 位 和 描 述 : 程 序 设 计 / 办 公 软 件 高 级 应 用 级 考 核 内 容 包 括 计 算 机 语 言 与 基 础 程 序 设 计 能 力, 要 求 参 试 者 掌 握 一 门 计 算 机 语 言, 可 选 类 别 有 高 级 语 言 程 序 设 计 类 数 据 库 编 程 类

生产支援功能 使用说明书(IP-110 篇)

随着执业中医师资格考试制度的不断完善,本着为我校中医学专业认证服务的目的,本文通过对我校中医类毕业生参加2012年和2013年的中医执业医师考试成绩及通过率、掌握率进行分析,并与全国的平均水平进行差异比较分析,以此了解我校执业中医师考试的现状,进而反映我校中医类课程总体教学水平,发现考核知识模块教学中存在的不足,反馈给相关学院和教学管理部门,以此提高教学和管理水平。

2006年顺德区高中阶段学校招生录取分数线

目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理 巡 检 计 划 查 询 详 情 销 售 管

3 复 试 如 何 准 备 4 复 试 成 绩 计 算 5 复 试 比 例 6 复 试 类 型 7 怎 么 样 面 对 各 种 复 试 04 05

0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 考 核 ( 扣 原 因 ) 考 评 得 3 安 全 生 产 目 30 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 无 轻 伤 责 任 事 故 无 重 大 质 量

( ) 信 号 与 系 统 Ⅰ 学 科 基 础 必 修 课 教 周 2016 年 06 月 13 日 (08:00-09:35) ( )

Microsoft Word - 资料分析练习题09.doc

<4D F736F F D C3E6CFF2B6D4CFF3A3A8B5DAC8FDD5C220C0E0CCD8D0D4A3A92E646F63>

一 从 分 封 制 到 郡 县 制 一 从 打 虎 亭 汉 墓 说 起

年 第 期 % %! & % % % % % % &

一、资质申请

珠江钢琴股东大会

抗 战 时 期 国 民 政 府 的 银 行 监 理 体 制 探 析 % # % % % ) % % # # + #, ) +, % % % % % % % %

& & ( & ) +,! #

!!

四川省农村义务教育学生

<4D F736F F D20B3D6B2D6CFDEB6EEB1EDB8F1D7EED6D52E646F63>

<4D F736F F D20CAFDD6B5BBFDB7D6D3EBCAFDD6B5CEA2B7D6D1A7CFB0D6B8B5BC2E646F63>

金 不 少 于 800 万 元, 净 资 产 不 少 于 960 万 元 ; (3) 近 五 年 独 立 承 担 过 单 项 合 同 额 不 少 于 1000 万 元 的 智 能 化 工 程 ( 设 计 或 施 工 或 设 计 施 工 一 体 ) 不 少 于 2 项 ; (4) 近 三 年 每 年

西 南 民 族 学 院 学 报 哲 学 社 会 科 学 版 第 卷 资 料 来 源 中 国 统 计 年 鉴 年 年 新 中 国 五 十 年 统 计 资 料 汇 编 中 国 人 口 统 计 年 鉴 年 数 据 资 料 来 源 中 国 统 计 年 鉴 中 国 统 计 出 版 社 年 版 资 料 来 源

际 联 考 的 非 美 术 类 本 科, 提 前 批 本 科 体 育 类 第 一 批 第 二 批 第 三 批 的 理 工 类 和 文 史 类 本 科 平 行 志 愿, 考 生 可 以 填 报 6 所 院 校 志 愿 符 合 贫 困 地 区 专 项 计 划 和 农 村 考 生 专 项 计 划 报 考


全国建筑市场注册执业人员不良行为记录认定标准(试行).doc

¹ º ¹ º 农 业 流 动 人 口 是 指 户 口 性 质 为 农 业 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个 月 及 以 上 的 流 动 人 口 非 农 流 动 人 口 是 指 户 口 性 质 为 非 农 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个

<443A5C6D B5C30312EB9A4D7F7CEC4B5B55C30322EBACFCDACCEC4B5B55C C30342EC8CBC9E7CCFC5C31332ECFEEC4BFC5E0D1B55C E30385C322EB2D9D7F7CAD6B2E12E646F63>

Template BR_Rec_2005.dot

PowerPoint Presentation

<4D F736F F D20B5DACAAEBDECD0A1BBFAC1E9B1ADCAFDD1A7BEBAC8FC C4EAB8A8B5BCD7CAC1CFCEE5C4EABCB6D7DBBACFC1B7CFB05F365F2E646F63>

模 型 假 设 假 设 假 设 假 设 假 设 假 设 模 型 建 立 与 推 导

<433A5C C6B73625C B746F705CB9FABCCAD6D0D2BDD2A9D7A8D2B5B8DFBCB6BCBCCAF5D6B0B3C6C6C0C9F3C9EAC7EBD6B8C4CFA3A CDA8D3C3B0E6A3A92E646F63>

2015年下半年全国教师资格笔试《地理学科知识与教学能力》备考指导

正 规 培 训 达 规 定 标 准 学 时 数, 并 取 得 结 业 证 书 二 级 可 编 程 师 ( 具 备 以 下 条 件 之 一 者 ) (1) 连 续 从 事 本 职 业 工 作 13 年 以 上 (2) 取 得 本 职 业 三 级 职 业 资 格 证 书 后, 连 续 从 事 本 职 业

<4D F736F F D DB9FAD5AEC6DABBF5B1A8B8E6CAAEC8FDA3BAB9FAD5AEC6DABBF5B5C4B6A8BCDBBBFAD6C6D3EBBBF9B2EEBDBBD2D7D1D0BEBF>

<4D F736F F D20BFC9B1E0B3CCD0F2BFD8D6C6CFB5CDB3C9E8BCC6CAA6B9FABCD2D6B0D2B5B1EAD7BC2E646F63>

一 六 年 级 下 册 教 科 书 总 体 说 明 ( 一 ) 教 学 内 容 本 册 教 科 书 一 共 安 排 了 5 个 教 学 单 元, 其 中 前 4 个 单 元 为 新 知 识, 第 五 单 元 是 对 整 个 小 学 阶 段 所 学 数 学 知 识 系 统 的 整 理 和 复 习

黄 金 原 油 总 持 仓 增 长, 同 比 增 幅 分 别 为 4.2% 和 4.1% 而 铜 白 银 以 及 玉 米 则 出 现 减 持, 减 持 同 比 减 少 分 别 为 9.4%,9.4% 以 及 6.5% 大 豆, 豆 粕 结 束 连 续 4 周 总 持 仓 量 增 长, 出 现 小 幅

采 取 行 动 的 机 会 90% 开 拓 成 功 的 道 路 2

徐天宏:《基因天堂》.doc

<4D F736F F D20D0A3B7A2A1B A1B BAC5B9D8D3DAD7E9D6AFBFAAD5B9C8ABD0A3BDCCD6B0B9A4B8DACEBBC6B8D3C3B1E4B6AFB9A4D7F7B5C4CDA8D6AA2E646F63>

上证指数


新, 各 地 各 部 门 ( 单 位 ) 各 文 化 事 业 单 位 要 高 度 重 视, 切 实 加 强 领 导, 精 心 组 织 实 施 要 根 据 事 业 单 位 岗 位 设 置 管 理 的 规 定 和 要 求, 在 深 入 调 查 研 究 广 泛 听 取 意 见 的 基 础 上, 研 究 提


世华财讯模拟操作手册

业务方案篇

untitled

DLJ1.nps


18 上 报 该 学 期 新 生 数 据 至 阳 光 平 台 第 一 学 期 第 四 周 至 第 六 周 19 督 促 学 习 中 心 提 交 新 增 专 业 申 请 第 一 学 期 第 四 周 至 第 八 周 20 编 制 全 国 网 络 统 考 十 二 月 批 次 考 前 模 拟 题 第 一 学

微 积 分 ( 二 ) 教 学 大 纲 2 (2010 版 ) 课 程 编 码 : 课 程 名 称 : 微 积 分 学 时 / 学 分 :36/2 先 修 课 程 : 初 等 数 学 立 体 几 何 平 面 解 析 几 何 微 积 分 ( 一 ) 适 用 专 业 : 人 力 资 源 管

4.3.3 while 语 句 用 于 无 限 循 环 当 while 语 句 的 表 达 式 永 远 不 会 为 布 尔 假 时, 循 环 将 永 远 不 会 结 束, 形 成 无 限 循 环, 也 称 死 循 环 使 用 while 语 句 构 成 无 限 循 环 的 格 式 通 常

中 国 软 科 学 年 第 期!!!

doc

附 件 : 上 海 市 建 筑 施 工 企 业 施 工 现 场 项 目 管 理 机 构 关 键 岗 位 人 员 配 备 指 南 二 一 四 年 九 月 十 一 日 2

2009 DN600 ~ InfoWorks CS km km km m 3 /d 1 U U 2 1 InfoWorks CS % km km 2 Vol.

(Microsoft Word - NCRE\314\345\317\265\265\367\325\37313\324\27221\272\3051.doc)

2.5 选 举 陈 晓 非 女 士 为 第 六 届 董 事 会 董 事 候 选 人 的 议 案 ; 2.6 选 举 卢 婕 女 士 为 第 六 届 董 事 会 董 事 候 选 人 的 议 案 ; 2.7 选 举 张 文 君 先 生 为 第 六 届 董 事 会 独 立 董 事 候 选 人 的 议 案

系统设计文档_样稿管理模块 V1.1_.doc

公 开 刊 物 须 有 国 内 统 一 刊 (CN), 发 表 文 章 的 刊 物 需 要 在 国 家 新 闻 出 版 广 电 总 局 ( 办 事 服 务 便 民 查 询 新 闻 出 版 机 构 查 询 ) 上 能 够 查 到 刊 凡 在 有 中 国 标 准 书 公 开

Transcription:

树 状 数 组 入 门 教 程 引 言 在 解 题 过 程 中, 我 们 有 时 需 要 维 护 一 个 数 组 的 前 缀 和 S[i]=A[]+A[2]+...+A[i] 但 是 不 难 发 现, 如 果 我 们 修 改 了 任 意 一 个 A[i],S[i] S[i+]...S[n] 都 会 发 生 变 化 可 以 说, 每 次 修 改 A[i] 后, 调 整 前 缀 和 S 在 最 坏 情 况 下 会 需 要 O(n) 的 时 间 当 n 非 常 大 时, 程 序 会 运 行 得 非 常 缓 慢 因 此, 这 里 我 们 引 入 树 状 数 组, 它 的 修 改 与 求 和 都 是 O(logn) 的, 效 率 非 常 高 理 论 为 了 对 树 状 数 组 有 个 形 象 的 认 识, 我 们 先 看 下 面 这 张 图 如 图 所 示, 红 色 矩 形 表 示 的 数 组 C 就 是 树 状 数 组 这 里,C[i] 表 示 A[i-2 k +] 到 A[i] 的 和, 而 k 则 是 i 在 二 进 制 时 末 尾 0 的 个 数, 或 者 说 是 i 用 2 的 幂 方 和 表 示 时 的 最 小 指 数 当 然, 利 用 位 运 算, 我 们 可 以 直 接 计 算 出 2 k =i and (i xor (i-)) 或 i and (-i) 同 时, 我 们 也 不 难 发 现, 这 个 k 就 是 该 节 点 在 树 中 的 高 度, 因 而 这 个 树 的 高 度 不 会 超 过 logn 所 以, 当 我 们 修 改 A[i] 的 值 时, 可 以 从 C[i] 往 根 节 点 一 路 上 溯, 调 整 这 条 路 上 的 所 有 C 即 可, 这 个 操 作 的 复 杂 度 在 最 坏 情 况 下 就 是 树 的 高 度 即 O(logn) 另 外, 对 于 求 数 列 的 前 n 项 和, 只 需 找 到 n 以 前 的 所 有 最 大 子 树, 把 其 根 节 点 的 C 加 起 来 即 可 不 难 发 现, 这 些 子 树 的 数 目 是 n 在 二 进 制 时 的 个 数, 或 者 说 是 把 n 展 开 成 2 的 幂 方 和 时 的 项 数, 因 此, 求 和 操 作 的 复 杂 度 也 是 O(logn) 树 状 数 组 C, 其 中 C[i]=a[i-2 k +]+ +a[i](k 为 i 在 二 进 制 形 式 下 末 尾 0 的 个 数 ) 由 c 数 组 的 定 义 可 以 得 出 : c[]=a[] c[2]=a[]+a[2]=c[]+a[2] c[3]=a[3] c[4]=a[]+a[2]+a[3]+a[4]=c[2]+c[3]+a[4] c[5]=a[5] c[6]=a[5]+a[6]=c[5]+a[6]

c[7]=a[7] c[8]= a[]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]=c[4]+c[6]+c[7]+a[8] c[6]=a[]+a[2]+ +a[6]=c[8]+c[2]+c[4]+c[5]+a[6] c 数 组 的 结 构 对 应 一 棵 树, 因 此 称 之 为 树 状 数 组 对 应 如 下 图 形 : 在 最 后, 我 们 将 给 出 一 些 树 状 数 组 的 实 现 代 码, 希 望 读 者 能 够 仔 细 体 会 其 中 的 细 节. 求 最 小 幂 2 k C++ 语 言 : int Lowbit(int t) return t & ( t ^ ( t - ) ); //end Pascal 语 言 : Function lowbit(x:longint):longint; var t:longint; t:=x and (x (xor(x-)); exit(t); // 相 当 于 lowbit:=t; 建 立 树 状 数 组 c 更 新 元 素 值 子 序 列 求 和, 都 与 2 k 有 关 所 以 令 lowbit(i)=2 k ( 其 中 k 为 i 在 二 进 制 下 未 尾 0 的 个 数 ) 其 实 lowbit(i)=2 k =i and (i xor (i-)) 以 i=6 为 例 (6)0=(00)2 Xor (6-)0=(5)0=(00)2 (00)2 And (6)0=(00)2 (000)2 2

2. 对 某 个 元 素 进 行 加 法 操 作 : 将 a[p] 的 值 加 上 一 个 值 x(x 可 正 可 负 ) C++ 语 言 : int plus(int p, int x) while(p <= maxn) //maxn 为 给 定 范 围 的 上 限 c[p] += x; p += Lowbit(p); Pascal 语 言 : procedure plus(p,x:longint); while p<=maxn do //maxn 为 给 定 范 围 的 上 限 c[p]:=c[p]+x; p:=p+lowbit(p) 譬 如, 修 改 9 这 个 值, 我 们 要 修 改 c[9] = c[00] c[9+2^0] = c[0] = c[00] c[0+2^] = c[2] = c[00] c[2+2^2] = c[6] = c[0000] 修 改 2 这 个 值, 我 们 要 修 改 c[2] = c[00] c[2+2^2] = c[6] = c[0000] c[6+2^4] = c[32] = c[00000] 依 此 类 推, 直 到 上 限 3. 求 前 p 项 和 : 统 计 a[]...a[p] 的 和 C++ 语 言 : int sum(int p) int sum = 0; while(p > 0) sum+ = c[p]; p- = Lowbit(p); return sum; Pascal 语 言 : Function sum(p:longint):longint; var s:longint; s:=0; while p>0 do s:=s+c[p]; p:=p-lowbit(p); exit(s); // 相 当 于 sum:=s; 譬 如, 求 a[]+a[2]+a[3]+ +a[2] 的 和 c[2] = c[00] c[2-2^2] = c[8] = c[000] c[8-2^3] = c[0] 所 以 a[]+a[2]+a[3]+ +a[2] 的 和 为 c[2]+c[8] 3

4. 统 计 a[x]..a[y] 的 值 调 用 以 上 的 sum 操 作 :sum[y]-sum[x-] 一 维 的 树 状 数 组 的 每 个 操 作 的 复 杂 度 都 是 O(logn) 的, 非 常 高 效 它 可 以 扩 充 为 n 维, 这 样 每 个 操 作 的 复 杂 度 就 变 成 了 O((logn)^n), 在 n 不 大 的 时 候 可 以 接 受 扩 充 的 方 法 就 是 将 原 来 改 变 和 查 询 的 函 数 中 的 一 个 循 环 改 成 嵌 套 的 n 个 循 环 在 n 维 的 c 数 组 中 操 作 要 注 意 树 状 数 组 能 处 理 的 是 下 标 为..n 的 数 组, 绝 对 不 能 出 现 下 标 为 0 的 情 况 因 为 lowbit(0)=0, 这 样 会 陷 入 死 循 环 实 战 运 用 例 给 定 n 个 数 列, 规 定 有 两 种 操 作, 一 是 修 改 某 个 元 素, 二 是 求 子 数 列 [a,b] 的 连 续 和 数 列 的 元 素 个 数 最 多 0 万 个, 询 问 操 作 最 多 0 万 次 输 入 格 式 第 一 行 2 个 整 数 n,m(n 表 示 输 入 n 个 数 列,m 表 示 有 m 个 操 作 ) 第 二 行 输 入 n 个 数 列 接 下 来 M 行, 每 行 有 三 个 数 k,a,b(k=0 表 示 求 子 数 列 [a,b] 的 和,k= 表 示 第 a 个 数 列 加 b 值 ) 输 出 格 式 输 出 若 干 行 数 字, 表 示 每 次 K=0 时 对 应 输 出 一 个 子 数 列 [a,b] 的 连 续 和 输 入 样 例 0 5 // 输 入 n 个 数 列, 有 m 个 操 作 2 3 4 5 6 7 8 9 0 // 输 入 n 个 数 5 // 第 个 数 加 上 5 0 3 // 求 数 列 到 数 列 3 的 连 续 和 为 0 4 8 // 求 数 列 4 到 数 列 8 的 连 续 和 为 30 7 5 // 第 7 个 数 加 上 5 0 4 8 // 求 数 列 4 到 数 列 8 的 连 续 和 为 35 输 出 样 例 30 35 参 考 程 序 Program treearray; const maxn=000; var c:array[..maxn]of longint; n,i,m,x,y,st,a,b:longint; function lowbit(x:longint):longint; lowbit:=((x-)xor x)and x; 4

procedure plus(p,x:longint); while p<=n do inc(c[p],x); inc(p,lowbit(p)); function sum(p:longint):longint; var s:longint; s:=0; while p>0 do inc(s,c[p]); dec(p,lowbit(p)); exit(s); Begin readln(n,m); fillchar(c,sizeof(c),0); for i:= to n do read(y); plus(i,y); for i:= to m do readln(st,a,b); if st=0 then writeln(sum(b)-sum(a-)) else plus(a,b); End. 例 2 数 星 星 Stars(ural028) 问 题 描 述 天 空 中 有 一 些 星 星, 这 些 星 星 都 在 不 同 的 位 置, 每 个 星 星 有 个 坐 标 如 果 一 个 星 星 的 左 下 方 ( 包 含 正 左 和 正 下 ) 有 k 颗 星 星, 就 说 这 颗 星 星 是 k 级 的 5

比 如, 在 上 面 的 例 图 中, 星 星 5 是 3 级 的 (,2,4 在 它 左 下 ) 星 星 2,4 是 级 的 例 图 中 有 个 0 级,2 个 级, 个 2 级, 个 3 级 的 星 编 程 任 务 给 定 星 星 的 位 置, 输 出 各 级 星 星 的 数 目 给 定 n 个 点, 定 义 每 个 点 的 等 级 是 在 该 点 左 下 方 ( 含 相 等 ) 的 点 的 数 目, 试 统 计 每 个 等 级 有 多 少 个 点 (n<=5000,0<=x,y<=32000) 输 入 格 式 第 行 一 个 整 数 N(<=N<=5000), 表 示 星 星 的 数 目 接 下 来 N 行 给 出 每 颗 星 星 的 坐 标, 两 个 整 数 X,Y(0<=X,Y<=32000) 不 会 有 星 星 重 叠 星 星 按 Y 坐 标 增 序 列 出,Y 坐 标 相 同 的 按 X 坐 标 增 序 列 出 输 出 格 式 N 行, 每 行 一 个 整 数, 分 别 是 0 级, 级,2 级 N- 级 的 星 星 的 数 目 输 入 样 例 5 5 7 3 3 5 5 输 出 样 例 2 0 算 法 分 析 相 当 经 典 的 树 状 数 组 题 目, 一 开 始 分 析 题 目 是 第 一 感 觉 是 二 维 的 树 状 数 组, 不 过 数 据 范 围 显 然 不 容 许 的 对 于 每 个 星 星 按 y 坐 标 从 小 到 大 排 序, 相 同 y 坐 标 按 x 坐 标 从 小 到 大 排 序 ( 题 目 中 数 据 已 经 有 序 ), 输 入 顺 序 已 排 好 序, 那 么 只 要 依 次 统 计 星 星 i 之 前 x 坐 标 小 于 等 于 i.x 的 星 星 有 多 少, 即 是 星 星 i 的 级 别 y 坐 标 没 用, 显 然 是 一 维 树 状 数 组 应 用, 这 样 也 就 成 了 树 状 数 组 的 模 型, 编 码 很 简 单 设 数 组 a[x] 初 始 为 0, 表 示 在 x 坐 标 处 星 星 的 个 数, 则 求 和 a[0] ~ a[x] 则 为 该 星 星 的 等 级, 逐 个 处 理 每 个 星 星 有 一 个 地 方 尤 其 要 注 意, 树 状 数 组 是 以 号 为 起 始 的, 而 且 只 能 用 号 x 可 能 为 0, 为 0 会 时 陷 入 死 循 环, 处 理 时 要 将 所 有 的 x+ ( 当 然 加 上 其 它 的 也 无 所 谓, 只 是 上 限 范 围 需 要 变 大 ), 还 有 就 是 x 的 范 围 不 能 事 先 确 定, 在 plus 的 时 候 我 直 接 加 到 了 x 取 值 范 围 的 最 大 值 6

例 3 校 门 外 的 树 (vijo448) 问 题 描 述 校 门 外 有 很 多 树, 有 苹 果 树, 香 蕉 树, 有 会 扔 石 头 的, 有 可 以 吃 掉 补 充 体 力 的 如 今 学 校 决 定 在 某 个 时 刻 在 某 一 段 种 上 一 种 树, 保 证 任 一 时 刻 不 会 出 现 两 段 相 同 种 类 的 树, 现 有 两 个 操 作 : K=, 读 入 l,r 表 示 在 l - r 之 间 种 上 的 一 种 树 K=2, 读 入 l,r 表 示 询 问 l - r 之 间 能 见 到 多 少 种 树 (l,r>0, 道 路 总 长 和 操 作 数 <=50000) 输 入 文 件 第 一 行 n,m 表 示 道 路 总 长 为 n, 共 有 m 个 操 作 接 下 来 m 行 为 m 个 操 作 输 出 文 件 对 于 每 个 k=2 输 出 一 个 答 案 输 入 输 出 样 例 tree.in 5 4 3 2 2 5 2 4 2 3 5 算 法 分 析 tree.out 2 这 题 看 起 来 和 树 状 数 组 没 什 么 关 系, 不 过 我 们 通 过 一 定 的 转 化, 可 以 利 用 树 状 数 组 很 好 地 解 决 这 个 问 题 我 们 不 妨 把 所 有 线 段 的 端 点 看 成 括 号 序 列, 即 把 询 问 的 区 间 [lq,rq] 看 成 在 横 坐 标 lq 处 的 一 个 [ 和 rq 处 的 ], 即 把 插 入 的 线 段 [li,ri] 看 成 在 横 坐 标 li 处 的 一 个 ( 和 ri 处 的 ) 稍 作 分 析, 我 们 不 难 发 现, 最 后 的 答 案 等 于 ] 左 边 ( 的 个 数 减 去 [ 左 边 ) 的 个 数 那 么 我 们 现 在 做 的 就 是 对 某 个 点 做 修 改, 对 某 个 前 缀 求 和 我 们 就 可 以 很 容 易 想 到 树 状 数 组 的 做 法 :. 建 立 两 个 树 状 数 T 和 T2, 分 别 维 护 ( 和 ) 2. 若 K=, 读 入 li,ri,plust(li,),plust2(ri,) 3. 若 K=2, 读 入 lq,rq,sumt(rq-)-sumt2(lq-) 小 结 经 过 前 面 概 念 和 例 题 的 讨 论, 我 们 应 该 体 会 到 了 树 状 数 组 的 特 点 : 程 序 短 速 度 快 ; 也 明 白 到 它 最 常 用 的 功 能 : 维 护 部 分 和 在 竞 赛 中, 如 果 我 们 采 用 树 状 数 组 处 理, 既 可 以 保 证 程 序 的 效 率, 也 可 以 大 幅 度 减 小 调 试 难 度, 为 选 手 省 下 大 量 的 时 间, 可 以 说 是 极 其 划 算 的 总 结 树 状 数 组 是 和 线 段 树 有 异 曲 同 工 的 数 据 结 构, 其 优 点 在 于 高 效, 写 起 来 很 好 写, 并 且 是 在 线 的 数 据 结 构 2 但 其 只 能 处 理 一 次 修 改 某 一 个 点 上 的 数 据, 并 不 能 有 效 处 理 一 次 修 改 一 个 区 间 的 数 据 ( 每 次 只 能 修 改 某 一 节 点 的 值 而 不 能 修 改 整 个 树 可 以 理 解 为 区 间 的 值 ) 3 能 用 树 状 数 组 的 题, 一 定 能 用 线 段 树 做, 但 能 用 线 段 树 做 的 题, 不 一 定 能 用 树 状 数 组 做 7