差分

本文深入讲解差分算法,一种在程序竞赛中常见的高效处理区间修改的技术。通过生动的例子,如考试成绩批量调整,阐述差分算法的核心思想及其实现过程。文章提供了C++代码示例,展示如何使用差分数组快速更新指定区间的数值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 差分是一种支持进行区间大量修改的操作。精巧而不难理解,在竞赛中是一种很常用的小技巧。

    首先是思想:

    假如有一个年级考试,批卷时发现有一题全体改错了,需要全部加x分。按照朴素暴力的思想,就是将以前所有的批了的试卷全部再拿出来,再一张张的加分。这当然过于的慢,所以便有了差分的这种算法:说白了,就是将一整个考场的试卷封面上写上“加x分”,这样便省去了许多功夫。

    然后是实现:

    有一个区间,要将第n~m(m>n)的所有数全部加x,如图:

    

    在差分数组c中打两个标记,时间复杂度为O(1),暴力的速度为O(n-m)。

    附代码:

#include <bits/stdc++.h>
using namespace std;
const int SIZE=10005;
 
int a[SIZE],c[SIZE*10];
int ans=0,ask,n,m,x,y,w;
 
int main()
{
	cin>>n>>m;	//输入数列长度和修改次数
	for (int i=1;i<=n;i++) cin>>a[i];	//输入数列
	for (int i=1;i<=m;i++){
		cin>>x>>y>>w; //从x到y全部加w
		c[x]+=w;	  //x处标记+w 
		c[y+1]-=w; 	  //y+1处标记-w 
	}
	cin>>ask;		//输入查询下标 
	for (int i=1;i<=ask;i++) ans+=c[i];
	cout<<a[ask]+ans; //不要忘记加原数列值 
	
	return 0;
}

 

newifi3 D2 是一款知名的路由器设备,而“老毛固件”是一种第三方固件,常用于对路由器进行刷机以增加功能和改善性能。老毛固件在安全性和稳定性上具有一定的优势,受到很多用户的喜爱。 然而,老毛固件的默认密码是不同于原厂固件的。为了保护设备和用户的安全,建议在刷机之后立即修改密码。 具体设置密码的步骤如下: 1.连接电脑与newifi3 D2路由器设备,确保网络连接正常。 2.打开电脑上的浏览器,输入路由器管理界面地址,默认为192.168.1.1。 3.在登录界面,用户名一般默认为空,密码字段中输入默认的密码“admin”。 4.成功登录后,在路由器管理界面中找到设置选项或管理选项,点击进入。 5.在设置或管理选项中找到“密码设置”或“密码修改”等相关选项,点击进入密码设置界面。 6.在密码设置界面中,输入旧密码(默认为"admin"),然后输入您希望设置的新密码。为了确保密码的安全性,建议使用强度较高的密码,包含字母,数字和特殊字符,并且长度在8位以上。 7.保存设置后,重启路由器以使新密码生效。 需注意的是,由于不同版本的老毛固件可能有所差异,以上步骤可能会有些细微的变化。因此,在进行设置之前,建议先查看官方文档或咨询老毛固件的技术支持,以获取准确的设置步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值