线段树(单点更新) HDOJ 4288 Coder
题目传送门
1 #include <cstdio> 2 #include <cstring> 3 #define lson l, m, rt << 1 4 #define rson m + 1, r, rt << 1 | 1 5 6 const int MAX_N = 500000 + 10; 7 int sum[MAX_N << 2]; 8 9 void pushup(int rt) 10 { 11 if (rt >> 1 % 5 == 3) 12 sum[rt] += sum[rt >> 1]; 13 if (rt >>1 | 1 % 5 == 3) 14 sum[rt] += sum[rt >> 1 | 1]; 15 } 16 17 void build(int l, int r, int rt) 18 { 19 sum[rt] = r - l + 1; 20 if (l == r) 21 { 22 return ; 23 } 24 int m = (l + r) >> 1; 25 build (lson); 26 build (rson); 27 pushup (rt); 28 } 29 30 void update(int p, int l, int r, int rt) 31 { 32 if (l == r) 33 { 34 sum[rt] = p; 35 return ; 36 } 37 int m = (l + r) >> 1; 38 if (p <= m) update (p, lson); 39 else update (p, rson); 40 41 pushup (rt); 42 } 43 44 45 int main(void) //HDOJ 4288 Coder 46 { 47 //freopen ("inG.txt", "r", stdin); 48 int n; 49 char op[10]; 50 int x; 51 52 while (~scanf ("%d", &n)) 53 { 54 build (1, n, 1); 55 while (n--) 56 { 57 scanf ("%s", &op); 58 if (strcmp (op, "add") == 0) 59 { 60 scanf ("%d", &x); 61 update (x, 1, n, 1); 62 } 63 if (strcmp (op, "del") == 0) 64 { 65 scanf ("%d", &x); 66 update (-x, 1, n, 1); 67 } 68 if (strcmp (op, "sum") == 0) 69 { 70 printf ("%d\n", sum[1]); 71 } 72 } 73 } 74 75 return 0; 76 }
转载于:https://www.cnblogs.com/Running-Time/p/4506580.html
线段树(单点更新) HDOJ 4288 Coder相关推荐
- HDUOJ----1166敌兵布阵(线段树单点更新)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- poj 2892---Tunnel Warfare(线段树单点更新、区间合并)
题目链接 Description During the War of Resistance Against Japan, tunnel warfare was carried out extensiv ...
- HDU - 1166敌兵布阵+HDU-1754 I Hate It (线段树单点更新——累加/最大值)
线段树单点更新,模板题 HDU1166 敌兵布阵 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和T ...
- 【原创】tyvj1038 忠诚 计蒜客 管家的忠诚 线段树(单点更新,区间查询)...
[原创]tyvj1038 忠诚 & 计蒜客 管家的忠诚 & 线段树(单点更新,区间查询) 最简单的线段树之一,中文题目,不翻译.... 注释讲的比较少,这已经是最简单的线段树,如果看不 ...
- FZU 2297 Number theory【线段树/单点更新/思维】
Given a integers x = 1, you have to apply Q (Q ≤ 100000) operations: Multiply, Divide. Input First l ...
- CDOJ 1073 线段树 单点更新+区间查询 水题
H - 秋实大哥与线段树 Time Limit:1000MS Memory Limit:65535KB 64bit IO Format:%lld & %llu Submit S ...
- 线段树——单点更新(二)
HDU 4217 Data Structure? http://acm.hdu.edu.cn/showproblem.php?pid=4217 CZ做的一道题目,我帮忙看了看. 题意:给定N个数(1- ...
- CodeforcesBeta Round #19 D. Points 离线线段树 单点更新 离散化
题目链接: http://codeforces.com/contest/19/problem/D 题意: 有三种操作"add x y"往平面上添加(x,y)这个点,"re ...
- hdu4046 不错的线段树单点更新
题意: 给一个字符串,两种操作 0 a b 询问a,b之间有多少个wbw, 1 a c 就是把第a个改成c. 思路: 这个题目我们可以用线段树的点更新来做,一开始写了个好长好长 ...
- hdu 1540(线段树单点更新 区间合并)
解题思路:这一题要求的是连续区间,所以可以把它的子区间合并,这里运用线段树,但是在保存节点信息的方面要做一点修改 lsum:从这个区间的左端点往右能够找到的最大连续区间: rsum:从这个区间的右端点 ...
最新文章
- JAVA Calendar方法详解
- springboot 事务_原创002 | 搭上SpringBoot事务源码分析专车
- Answer:关于C#连续赋值的面试题
- 轻松删除所有安装的gem
- 【STM32】keil软件常用使用技巧
- mysql连接报错:The server time zone value ‘Öйú±ê׼ʱ¼ä‘ is unrecognized or represents more than one time
- [转]JAVA AES 加密算法
- Java学习总结(随笔)——利用JSON解析实现网络下载
- tomcat apr Dockfile
- python3安装步骤-Mac安装python3的方法步骤
- mysql8自定义安装位置_docker 自定义安装 mysql8
- 5G无线关键技术 — 高频段信号传输技术
- 独家揭秘:暴利的黑帽SEO行业
- 收集利用 Kotlin 进行 Android 开发的开源库,扩展,工具,开源项目,资料等高质量资源
- python 汉字 简繁体 转换方法
- vba oracle 乱码,【VBA研究】用VBA实现excel与Oracle数据库交互
- jmeter 录制--https代理证书导入IOS手机
- 转型之路之Excel单元格按数值显示带背景颜色进度条
- JS的DOM操作3--删除事件,注册事件与冒泡⭐⭐⭐(附带动图案例)
- 魅族6支持html吗,不知道你们发现了么,魅族Flyme6 超好用的隐藏功能
热门文章
- java 配置dbcp_java – 使用DBCP进行Tomcat配置
- python如何处理inp文件_python文件处理之fileinput
- 填报true\false和复选框应用及导出打印显示复
- java(jdk) 8u45 正式版_缺氧正式版,草图分享(克莱)
- 计算机辅助设计与制造考试重点,计算机辅助设计与制造复习内容
- 这也许是你不曾留意过的 Mybatis 细节 1
- Kotlin从入门到放弃(三)——协程
- ACdream 1417 Numbers
- ERP技术在财务信息化转型中应用探讨
- REDGATE又一好用的脚本工具ScriptsManager1.3