树状数组成段更新模板

这个成段的编写复杂度很低,不需要加大空间复杂度,便于处理成段加,询问每个位置的值的操作:

#include <bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef long double ld ;
typedef unsigned long long ull ;
#ifdef _WIN32
#define LLD "%I64d"
#else
#define LLD "%lld"
#endif
#define pi (acos(-1.0))
#define F first
#define S second
#define lson (o<<1),l,mid
#define rson (o<<1|1),mid+1,r
#define MP make_pair
const double eps = 1e-9 ;
const int inf = 0x3f3f3f3f ;
const ll INF = (ll)4e18 ;const int M = (int)1e5+10 ;
struct BIT {ll u[M] ;int n ;void clr(int _n) { n = _n ;memset (u,0,sizeof(int)*(n+1)) ;}void add (int x , ll v) {for (; x<=n ; x += x&-x) u[x] += v ;}void add (int l , int r , ll v) {add(l,v) ; add(r+1,-v) ;}ll get (int x , ll ret=0) {for (; x>0 ; x -= x&-x) ret += u[x] ;return ret ;}
}bit ;int main () {int a[20] = {0,3,7,4,8,9,11,5,4,9,1} ;for (int i=1 ; i<=10 ; i++) printf ("%-4d" , a[i]) ; puts ("");bit.clr (10) ;for (int i=10 ; i>0 ; i--) {a[i] = a[i]-a[i-1] ;bit.add(i,i,a[i]) ;}for (int i=1 ; i<=10 ; i++) printf ("%-4d",a[i]) ; puts ("");for (int i=1 ; i<=10 ; i++) printf ("%-4d" , bit.u[i]) ; puts ("") ;int Q ;scanf ("%d" , &Q) ;while (Q --) {int x ;scanf ("%d" , &x) ;printf ("%d\n" , bit.get(x) ) ;}return 0 ;
}

  

转载于:https://www.cnblogs.com/get-an-AC-everyday/p/5438755.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(1901)vue之电商管理系统电商系统之渲实现添加表单的重置规则

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue Vue.use(Router)const router new Router({routes: [{path: /,re…

在循环里创建数据库连接,严重影响数据库性能

在循环里面去操作数据库肯定会慢的&#xff0c;而且还容易碰到新手&#xff0c;在循环里面创建数据库连接&#xff0c;会导致连接数满。一般查询的话&#xff0c;在外层一次性查询出来 然后 在逻辑层去循环组织数据。如果是新增&#xff0c;则可以考虑使用批量插入的方法去处理…

内存溢出

java.lang.OutOfMemoryError: Java heap space 原因&#xff1a;Heap内存溢出&#xff0c;意味着Young和Old generation的内存不够。 解决&#xff1a;调整java启动参数-Xms -Xmx 来增加Heap内存。 java.lang.OutOfMemoryError: unable to create new native thread 原因&#…

前端学习(1902)vue之电商管理系统电商系统之渲实现添加用户前的预先校验

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue Vue.use(Router)const router new Router({routes: [{path: /,re…

git生成公钥和私钥

转自&#xff1a;http://blog.csdn.net/wqjsir/article/details/17386087/ 一、 Git windows 客服端&#xff08;MsysGit&#xff09;下载 下载地址&#xff1a;http://code.google.com/p/msysgit/ 二、从开始菜单中找到Git 点击Git Bash 弹出命令行窗体&#xff0c;如下图&…

后台导出大量数据超时报 nginx404错误

https://blog.csdn.net/weixin_30695195/article/details/95163683

前端学习(1903)vue之电商管理系统电商系统之调用api添加用户

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue Vue.use(Router)const router new Router({routes: [{path: /,re…

每日站立会议08

会议图片&#xff1a; 会议内容&#xff1a;祖浩然&#xff1a;昨天&#xff1a;对数据库的操作有了大概的了解&#xff1b;今天&#xff1a;制作增加、修改、删除、查询学生信息功能&#xff0c;以及退出主界面&#xff1b;遇到的问题&#xff1a;如何将网页地址以超链接形式…

java 8排序

https://www.cnblogs.com/invoker-/p/7709411.html

前端学习(1904)vue之电商管理系统电商系统之修改用户的操作

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue Vue.use(Router)const router new Router({routes: [{path: /,re…

前端学习(1905)vue之电商管理系统电商系统之根据用户id查询对应的信息

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue Vue.use(Router)const router new Router({routes: [{path: /,re…

SQL的主键和外键约束 小记

http://www.cnblogs.com/ywb-lv/archive/2012/03/12/2391860.html转载于:https://www.cnblogs.com/chengjun/p/5443002.html

简单快速的用SpringBoot访问静态资源(图片、html)

https://blog.csdn.net/qq_36481052/article/details/79075214

前端学习(1906)vue之电商管理系统电商系统之渲染修改用户的表单

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue Vue.use(Router)const router new Router({routes: [{path: /,re…

linux6.4 安装oracle11g 出现错误ORA-01078和LRM-00109错误

在linux中oracle11g安装成功后&#xff0c;启动监听&#xff08;lsnrctl start&#xff09;后&#xff0c;运行sqlplus / as sysdba后连接 startup出现了如下图的错误ORA-01078和LRM-00109错误 解决方法&#xff1a; 我当时也上网百度了一下&#xff0c;基本也都大同小异&…

前端学习(1907)vue之电商管理系统电商系统之渲染修改用户的表单的重置操作

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue Vue.use(Router)const router new Router({routes: [{path: /,re…

Java读取resource文件/路径的几种方式

https://blog.csdn.net/oschina_40188932/article/details/78833754

HDU 5617 Jam's maze dp+滚动数组

题目链接&#xff1a; hdu: http://acm.hdu.edu.cn/showproblem.php?pid5617 bc(中文): http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid666&pid1003 题解&#xff1a; 设dp[x1][x2][i]表示第i步时&#xff0c;从&#xff08;1,1)点走到了(x1,y1)&…

前端学习(1908)vue之电商管理系统电商系统之渲染修改用户的表单预先验证

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue Vue.use(Router)const router new Router({routes: [{path: /,re…

MySQL根据某一个或者多个字段查找重复数据

https://blog.csdn.net/qq_35834998/article/details/84847243