【ybt】【数据结构 树状数组 课过 例1】单点修改区间查询

CAD二次开发(C#版):从零搭建开发环境与核心DLL引用指南 本文详细介绍了使用C#进行CAD二次开发的环境搭建与核心DLL引用指南,涵盖Visual Studio配置、AutoCAD插件项目创建、DLL引用技巧及调试方法。通过实战示例和常见问题排查,帮助开发者快速掌握CAD二次开发的核心技术,提升开发效率。 阅读详情

单点修改区间查询

题目链接:YbtOJ/luogu


在这里插入图片描述

解题思路

树状数组模板题,不解释。

code

#include<iostream>
#include<cstdio>
#define int long long
#define lb(x) (x&(-x))
using namespace std;

int n,q;
int c[1000010];

void in(int x,int y)
{
	for(;x<=n;x+=lb(x))
		c[x]+=y;
}

int fd(int x)
{
	int s=0;
	for(;x;x-=lb(x))
		s+=c[x];
	return s;
}

signed main()
{
	cin>>n>>q;
	for(int i=1;i<=n;i++)
	{
		int a;
		scanf("%lld",&a);
		in(i,a);
	}
	while(q--)
	{
		int t,x,y;
		scanf("%lld%lld%lld",&t,&x,&y);
		if(t==1)
			in(x,y);
		else
			cout<<fd(y)-fd(x-1)<<endl;
	}
}
化工设备应力分析软件:STAAD.Pro二次开发_(24).非线性分析技术 在STAAD.Pro 中,可以通过命令。 阅读详情

相关推荐

Zephyr OS实战指南:从入门到精通物联网开发

本文提供了一份详尽的Zephyr OS实战指南,涵盖从开发环境搭建到物联网应用开发的全过程。文章详细介绍了如何利用Zephyr OS进行线程管理、设备驱动开发、低功耗设计以及蓝牙通信,并通过具体代码示例帮助开发者快速掌握这一专为物联网设备设计的开源实时操作系统,实现从入门到精通的跨越。

weixin_29201933的博客 547

【ybt】【数据结构 树状数组 课过 例4】区间修改区间查询

区间修改区间查询 题目链接:YbtOJ 解题思路 区间操作,我们可以想到差分。 设差分数组为 ddd ,那么求 ∑i=1nai\sum\limits_{i=1}^na_ii=1∑n​ai​ 就可以转换为 ∑i=1n∑j=1idi\sum\limits_{i=1}^n\sum\limits_{j=1}^id_ii=1∑n​j=1∑i​di​ 。 暴力枚举是 O(n2)O(n^2)O(n2) 的,我们考虑优化。 我们可以发现:d1d_1d1​ 出现了 nnn 次,d2d_2d2​ 出现了 n−1n-1n−1

你...你不要过来啊!!! 210

Python爬取网页数据并写入Excel

ChromeDriver下载链接:https://registry.npmmirror.com/binary.html?path=chromedriver/本例是从Excel表从读取数据,运用到网页中进行搜索,再将结果写入Excel表中。这里要先下载与Chrome版本相同的chromedriver(版本要相同!下载好后,将chromedriver路径正确配置在环境变量中。刚才爬了一些数据,分享一下代码。

weixin_68443051的博客 2519

【ybt】【数据结构 树状数组 课过 例6】区间修改区间查询

区间修改区间查询 题目链接:YbtOJ 解题思路 我们可以把区间修改区间查询的差分与单点修改区间查询结合起来,也就是二维树状数组维护二维前缀和再加上差分。 code #include<iostream> #include<cstdio> #define lb(x) (x&(-x)) #define int long long using namespace std; int n,m,p; int a,b,c,d,x; int tree[2050][2050][5];

你...你不要过来啊!!! 201

SQL-拼多多 面试题:连续3次为球队得分的球员名单

1.使用LAG开窗函数 筛选出 下一次和下下一次得分,并用进球时间进行排序。2.使用where筛选出值得嘉奖的球员。

Ftr1998的博客 644

从机械臂示教到厨房做饭:ACT模仿学习如何让机器人更“人性化”?

本文探讨了ACT(Action Chunking with Transformers)模仿学习技术如何让机器人更“人性化”,特别是在厨房等复杂场景中的应用。通过动作分块(Action Chunking)和时态融合(Temporal Ensemble)技术,机器人能够像人类一样记忆和执行复杂任务,如烹饪。文章还分析了ACT在家庭场景中的落地挑战及其在康复医疗、柔性制造等领域的跨领域应用潜力。

weixin_30613343的博客 255

【ybt】【数据结构 树状数组 课过 例5】单点修改区间查询

单点修改区间查询 题目链接:YbtOJ 解题思路 模板题,二维树状数组维护前缀和。 code #include<iostream> #include<cstdio> #define lb(x) (x&(-x)) #define int long long using namespace std; int n,m,q; int x,y,k; int a,b,c,d; int tree[5010][5010]; void in(int x,int y,int z) {

你...你不要过来啊!!! 163

读取rosbag中的IMU信息并转为tum格式的csv和txt

rostopic -b xx.bag -p /xx > xxx.txt #for euroc structvio import os, sys,re,csv name="street_07" # basedir="/media/yinjie/2498AF1F98AEEF0C/adataset/15results/imu_bagtxt/"+name+'.txt' # txtdir="/media/yinjie/2498AF1F98AEEF0C//adataset/15results/imu_o

qq_42928559的博客 1919

【Ybt OJ】[数据结构 第2章] 树状数组 [后半章]

「「「数据结构」」」第222章 树状数组(((后333题))) 目录: D.区间修改区间查询 E.单点修改区间查询(2维) F.区间修改区间查询(2维) D.D.D. 例题444 区间修改区间查询 分析: 树状数组一般只能实现单点修改 若维护序列aaa的差分数组bbb 我们对aaa的一个前缀rrr求和 即 ∑i=1rai\sum_{i=1}^ra_i∑i=1r​ai​ 由差分数组定义得 aia_iai​ === ∑j=1ibj\sum_{j=1}^ib_j∑j=1i​bj​ 进行推导 ∑i=1rai\

绫 252

第6章: MMU Notifier在KVM虚拟化中的应用

本文分析了KVM如何利用MMU Notifier机制维护客户机与宿主机地址映射一致性。KVM采用三层地址空间转换架构(GVA→GPA→HPA),通过硬件辅助虚拟化(EPT/NPT)实现高效转换。重点探讨了KVM MMU Notifier回调实现,包括invalidate_range_start/end等核心函数,以及HVA范围处理流程。当宿主机内存变化时,KVM通过注册的notifier回调及时更新映射关系,确保虚拟化环境的内存一致性。文章详细解析了相关数据结构和关键代码实现,揭示了KVM内存管理的核心机制

图形/计算GPU的驱动与虚拟化技术分享园地 2324

独家开源|RK3588 平台 YOLOv5 Android 源码级解析:NPU 量化、多线程与目标跟踪实战

本文将带你完成一个完整的AI视觉项目:在搭载RK3588芯片的Android开发板上运行实时目标检测与跟踪应用。实战目标:成功运行官方YOLOV5摄像头实时检测案例技术深度:深入理解RKNN开发框架和源码实现核心技能:掌握NPU推理、多线程并发、目标跟踪等关键技术。

m0_71589036的博客 193

【ybt高效进阶4-2-1】单点修改区间查询

模板题。 给一个序列,维护给一个数加一个值和求区间和的操作。

欢迎您的光顾awa 152

Android 12.0 系统开机设置默认横屏显示

在12.0的系统产品开发中,对于产品需求来说,由于是宽屏设备所以产品需要开机默认横屏显示,开机横屏显示这就需要从两部分来实现,一部分是开机动画横屏显示,另一部分是系统显示横屏显示,从这两方面就可以做到开机默认横屏显示了。

安卓兼职framework和app工程师的博客 3743

【ybt高效进阶4-2-4】区间修改区间查询 【树状数组模板】

区间修改区间查询 【ybt高效进阶4-2-4】 题目大意: 给定一个数组,让其支持区间修改,区间求和的操作。 思路: 树状数组+差分 我们设ddd数组是aaa数组的差分数组,那么我们有a[i]=∑j=1id[j]a[i]=\sum\limits_{j=1}^{i}d[j]a[i]=j=1∑i​d[j] 那么求区间的前缀和类比单点修改区间查询,用相减法,区间末值-区间开头。 那么我们有:∑i=1na[i]=∑i=1n∑j=1id[j]\sum\limits_{i=1}^{n}a[i]=\sum\limits_

天空之心 197

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【Ybt OJ】[数据结构 第2章] 树状数组 [前半章]

「「「数据结构」」」第222章 树状数组(((前333题))) 目录: A.单点修改区间查询 B.逆序对 C.严格上升子序列数 A.A.A. 例题111 单点修改区间查询 洛谷linklinklink 分析: 树状数组模板题 区间和就 前缀和相减 CODE: #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #in

绫 170

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【ybt高效进阶4-2-5】单点修改区间查询

给你一个矩阵,要你维护某个地方加值和求某个子矩阵的值的和两个操作。

欢迎您的光顾awa 193

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【ybt高效进阶4-2-6】【luogu P4514】区间修改区间查询 / 上帝造题的七分钟

给你一个二维的数组,要你维护给里面的一个矩阵都加一个值和查询一个矩形值的和的两个操作。

欢迎您的光顾awa 222

【YBTOJ】单点修改区间查询

codecodecode #include<iostream> #include<cstdio> using namespace std; long long n, q; long long a[1001000], c[1000100]; long long lowbit(long long x) { return x&-x; } void add(long long x, long long y) { for(; x<=n; x+=lowbit(x)) ..

ha 153

信息学奥赛一本通 1539:简单题 | 洛谷 P5057 [CQOI2006] 简单题

该题目涉及对01数组的区间修改和单点查询操作。主要解法有两种:树状数组和线段树。 解法1:树状数组 通过维护两个树状数组treeL和treeR,分别记录区间左端点和右端点的修改次数。每次区间修改时,更新treeL和treeR;查询时,通过计算sumL(x) - sumR(x-1)得到该位置被修改的次数,奇数次为1,偶数次为0。 解法2:线段树 使用线段树维护区间的异或值。每次区间修改时,对区间内的元素进行异或操作,并标记需要下传的标记。查询时,通过标记下传得到该位置的实际值。 两种解法均能高效处理区间修改和

君义NOIP的博客 1026

【ybt高效进阶4-2-4】【POJ 3468】区间修改区间查询 / A Simple Problem with Integers

给你一个数组,要你维护区间加值和区间求和两个操作。

欢迎您的光顾awa 199

【ybt高效进阶4-4-1】求区间和

求区间和【ybt高效进阶4-4-1】 题目大意: 让你维护一个数组(序列),让你支持单点修改,区间查询的操作。 思路: 本题最舒服的解法是树状数组,但此处我们当成线段树的板子。 直接上模板线段树。 代码: #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> #include<stack> #include&lt

天空之心 173

【ybt金牌导航6-6-1】区间第k小 / 整体二分例题

对于一个序列,多次询问。 每次求一个区间的第 k 小值。

欢迎您的光顾awa 227

【Ybt OJ】[数据结构 第4章] 线段树 [前半章]

「「「数据结构」」」第444章 线段树(((前333题))) 目录: A.求区间和 B.区间查改 C.小白逛公园 大家好 我是个菜鸡 我非常喜欢暴力数据结构 于是我用线段树过了这些题 A.A.A. 例题111 求区间和 洛谷linklinklink 分析: 那就树状数组 线段树过了呗 模板 CODE: #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #in

绫 167

信息学奥赛一本通 1548:【例 2】A Simple Problem with Integers

本题是一道区间修改与区间查询的模板题,可以使用线段树或树状数组两种数据结构解决。线段树通过递归构建二叉树结构,每个节点存储区间信息,支持区间修改与查询操作;树状数组则通过维护两个数组分别存储差分值及其乘积来实现高效区间操作。两种方法都能在O(logn)时间内完成每次操作,适合处理大规模数据。具体实现上,线段树通过标记传递处理区间修改,而树状数组巧妙利用差分数组的性质进行区间更新。两种解法均给出了完整代码实现,可根据需求选择合适的方法。

君义NOIP的博客 319

信息学奥赛一本通 1509:【例 1】Intervals | OpenJudge 百练 1201:Intervals

范围内已选点数量,为区间查询,选择一个点为区间修改,这一步可以使用树状数组优化,将区间查询的复杂度从。中最多可以选出b-a+1个数,从a-1到b的路径上可能有多条正权边,但正权边的权值加和,即路径的权值。,如果顶点b到顶点a-1有路径,必然由【顶点i到顶点i-1的权值为-1的有向边】构成,边数为。如果选择了第j点,那么小于等于j的第一个未选择点,就是小于等于i的第一个未选择点,因此将。没有变,仍然为i+2,而小于等于i+3的第一个未选择点此时为i,不是i+2。:顶点i到顶点i-1有权值为-1的有向边。

君义NOIP的博客 1113

【luogu P4278】【ybt金牌导航4-5-2】带插入区间K小值(树套树做法)

要你维护待插入和修改的区间 k 小在线的查询。

欢迎您的光顾awa 280
上一篇: 【luogu_P5253】丢番图
下一篇: 【ybt】【数据结构 树状数组 课过 例2】逆序对
SSL_GYX
博客等级 码龄7年 103粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值