another莫队之回滚莫队

【算法笔记】莫队算法(基础莫队,带修莫队,回滚莫队,树上莫队,二次离线莫队) 来这里学习莫队以及神奇的证明:莫队算法 --算法竞赛专题解析(26) 我们首先考虑双指针的暴力法,发现很容易就会被卡成O(nm)O(nm)O(nm),这时候我们的莫队出现了,莫队说,我可以像变魔术一样,把O(nm)O(nm)O(nm)的算法通过一个神奇的排序方式,使得我们最坏的情况下,时间复杂度也会非常优秀:O(nn)O(n\sqrt{n})O(nn​)。 莫队算法是一个离线的算法,我们先将所有的询问全部存下来,然后排序。我们的每一个询问都是一个左右区间,(l,r)(l ,r)(l,r) 我们的排序方法为双 阅读详情

就找了两三道题,不过回滚莫队思路也好理解,代码实现也不难:

1、我们以块编号为第一关键字排序,右端点位置为第二关键字排序

2、询问时依次枚举区间,我们保留右端点的移量(右边单增),左端点则每次在这一个块中来回移动

3、下一个块时,清空统计答案重做

所以对于每一个块:左端点每次操作√n,右端点总共移n,均摊√n,因此时间复杂度保证了n√n

1)loj#6285

题目描述

给出一个长为 n 的数列,以及 n 个操作,操作涉及询问区间的最小众数。

输入格式

第一行输入一个数字 n。

第二行输入 n个数字,第 i 个数字为 ai,以空格隔开。

接下来输入 n 行询问,每行输入两个数字 l、r以空格隔开。

表示查询位于[l,r]的数字的众数。

输出格式

对于每次询问,输出一行一个数字表示答案。

样例

样例输入

4

1 2 2 4

1 2

1 4

2 4

3 4

样例输出

1

2

2

2

#include<bits/stdc++.h>
using namespace std;
#define Inc(i,L,r) for(register int i=(L);i<=(r);++i)
const int N = 1e5;
int n,siz,k[N+10],bl[N+10];
struct Que{
	int L,r,idx;
}q[N+10];
bool cmp(const Que&A,const Que&B){
	return bl[A.L]^bl[B.L]?A.L<B.L:A.r<B.r;
}
inline void init(){
	scanf("%d",&n);
	Inc(i,1,n)scanf("%d",k+i);
	Inc(i,1,n){
		int x,y;scanf("%d%d",&x,&y);
		q[i]=(Que){x,y,i};
	}
	siz=sqrt(n);
	Inc(i,1,n)bl[i]=(i-1)/siz+1;
	sort(q+1,q+1+n,cmp);
}
int rp[N+10];
inline void disc(){
	int tmp[N+10];
	Inc(i,1,n)tmp[i]=k[i];
	sort(tmp+1,tmp+1+n);
	int len=unique(tmp+1,tmp+1+n)-tmp-1;
	Inc(i,1,n)rp[i]=lower_bound(tmp+1,tmp+1+len,k[i])-tmp;
}
int cur_ans,cur_num,Ans[N+10],num[N+10];
inline void addr(int x){
	++num[rp[x]];
	if(num[rp[x]]>=cur_num){
		if(num[rp[x]]==cur_num&&k[x]<cur_ans)cur_ans=k[x];
		else if(num[rp[x]]>cur_num)cur_ans=k[x],cur_num=num[rp[x]];
	}
}
inline void addl(int x,int &ans,int &Num){
	++num[rp[x]];
	if(num[rp[x]]>=Num){
		if(num[rp[x]]==Num&&k[x]<ans)ans=k[x];
		else if(num[rp[x]]>Num)ans=k[x],Num=num[rp[x]];
	}
}
inline void remove(int x){
	--num[rp[x]];
}
inline void solv(){
	int L,r,lim;
	Inc(i,1,n){
		if(bl[q[i].L]^bl[q[i-1].L]){//下一个块,初始化 
			memset(num,0,sizeof(num));
			L=lim=bl[q[i].L]*siz+1;
			r=bl[q[i].L]*siz;
			cur_ans=cur_num=0;
		}
		if(bl[q[i].L]==bl[q[i].r]){//不用移动r,直接暴力扫√n ,也是分块散块的处理思想呢 
			int ans,nownum=0;
			Inc(j,q[i].L,q[i].r)++num[rp[j]];
			Inc(j,q[i].L,q[i].r)if(num[rp[j]]>=nownum){
				if(num[rp[j]]==nownum&&k[j]<ans)ans=k[j];
				else if(num[rp[j]]>nownum)ans=k[j],nownum=num[rp[j]];
			}
			Inc(j,q[i].L,q[i].r)--num[rp[j]];
			Ans[q[i].idx]=ans;
			continue;
		}
		while(r<q[i].r)addr(++r);
		int now=cur_ans,nownum=cur_num;//值得注意的是我们不能让左边影响右边已经统计好的答案 
		while(L>q[i].L)addl(--L,now,nownum);
		Ans[q[i].idx]=now;
		while(L<lim)remove(L++);
	}
	Inc(i,1,n)cout<<Ans[i]<<"\n";
}
int main(){
	init();
	disc();
	solv();
	return 0;
} 

2)历史研究 #BZOJ4241

Description

IOI国历史研究的第一人——JOI教授,最近获得了一份被认为是古代IOI国的住民写下的日记。JOI教授为了通过这份日记来研究古代IOI国的生活,开始着手调查日记中记载的事件。
  日记中记录了连续N天发生的时间,大约每天发生一件。
  事件有种类之分。第i天(1<=i<=N)发生的事件的种类用一个整数Xi表示,Xi越大,事件的规模就越大。
JOI教授决定用如下的方法分析这些日记:
1.选择日记中连续的一些天作为分析的时间段
2.事件种类t的重要度为t*(这段时间内重要度为t的事件数)
3.计算出所有事件种类的重要度,输出其中的最大值
  现在你被要求制作一个帮助教授分析的程序,每次给出分析的区间,你需要输出重要度的最大值。

Input

  第一行两个空格分隔的整数N和Q,表示日记一共记录了N天,询问有Q次。
  接下来一行N个空格分隔的整数X1...XN,Xi表示第i天发生的事件的种类
  接下来Q行,第i行(1<=i<=Q)有两个空格分隔整数Ai和Bi,表示第i次询问的区间为[Ai,Bi]。

Output

  输出Q行,第i行(1<=i<=Q)一个整数,表示第i次询问的最大重要度

Sample Input

5 5

9 8 7 8 9

1 2

3 4

4 4

1 4

2 4

Sample Output

9

8

8

16

16

Hint

1<=N<=10^5
1<=Q<=10^5
1<=Xi<=10^9 (1<=i<=N)

 

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define N 100010
#define Inc(i,L,r) for(register int i=(L);i<=(r);++i)
#define Red(i,r,L) for(register int i=(r);i>=(L);--i)
int n,q,siz,v[N],rp[N],bl[N],imp[N];
struct Sec{
	int L,r,idx;
}a[N];
bool cmp(const Sec&A,const Sec&B){
	return bl[A.L]^bl[B.L]?A.L<B.L:A.r<B.r;
}
inline void disc(){
	int tmp[N];
	Inc(i,1,n)tmp[i]=v[i];
	sort(tmp+1,tmp+1+n);
	int len=unique(tmp+1,tmp+1+n)-tmp-1;
	Inc(i,1,n)rp[i]=lower_bound(tmp+1,tmp+1+len,v[i])-tmp;
}
inline void prep(){
	siz=sqrt(n);
	Inc(i,1,n)bl[i]=(i-1)/siz+1;
	Inc(i,1,q){
		int L,r;scanf("%lld%lld",&L,&r);
		a[i]=(Sec){L,r,i};
	}
//	cout<<q<<"\n";
	sort(a+1,a+1+q,cmp);
}
inline void init(){
	scanf("%lld%lld",&n,&q);
	Inc(i,1,n)scanf("%lld",v+i);
	disc();//离散化
	prep();//分块
}
int L,r,ans1,sum[N],ans[N];
int tmp[N];
inline void add(int x){
	sum[rp[x]]+=v[x];
}
inline void remove(int x){
	sum[rp[x]]-=v[x];
}
inline void Momo(){
	Inc(i,1,q){
		if(bl[a[i].L]^bl[a[i-1].L]){//下一个块 
			memset(sum,0,sizeof(sum));
			L=bl[a[i].L]*siz+1;
			r=bl[a[i].L]*siz;
			ans1=0;
		}
		if(bl[a[i].r]==bl[a[i].L]){//同一个块内,暴力处理根号n 
			int tmpans=0;
			Inc(j,a[i].L,a[i].r)tmp[rp[j]]+=v[j];
//			Inc(j,a[i].L,a[i].r)cout<<v[j]<<" ";cout<<"\n";
			Inc(j,a[i].L,a[i].r)tmpans=max(tmpans,tmp[rp[j]]);
			Inc(j,a[i].L,a[i].r)tmp[rp[j]]-=v[j];
			ans[a[i].idx]=tmpans;
			continue;
		}int ed=min(bl[a[i].L]*siz+1,n);
		while(r<a[i].r)add(++r),ans1=max(ans1,sum[rp[r]]);
		int las=ans1;
		while(L>a[i].L)add(--L),ans1=max(ans1,sum[rp[L]]);
		while(L<ed)remove(L++);
		ans[a[i].idx]=ans1;
		ans1=las;
	}
	Inc(i,1,q)cout<<ans[i]<<"\n";
}
main(){
//	freopen("yanjiu.in","r",stdin);
//	freopen("yanjiu.out","w",stdout);
	init();
	Momo();
}

3)Chef and Problems(from Code-Chef FNCS)

给定序列,求[l,r]区间内数字相同的数的最远距离。

题目传送门

#include<bits/stdc++.h>
using namespace std;
const int Maxn=100005;
int n,m,k,siz,a[Maxn],bl[Maxn];
int t[Maxn],mnl[Maxn],mxr[Maxn];
int ret,ans[Maxn];
struct seq{
	int l,r,idx;
}q[Maxn];
bool cmp(const seq&A,const seq&B){
	return bl[A.l]!=bl[B.l]?A.l<B.l:A.r<B.r;
}
void add(int x){
	mnl[a[x]]=min(mnl[a[x]],x);
	mxr[a[x]]=max(mxr[a[x]],x);
	ret=max(ret,mxr[a[x]]-mnl[a[x]]);
}
int main(){
	scanf("%d%d%d",&n,&m,&k);
	for(int i=1;i<=n;++i)
		scanf("%d",&a[i]);
	for(int i=1;i<=k;++i){
		int l,r;scanf("%d%d",&l,&r);
		q[i]=(seq){l,r,i};
	}
	siz=sqrt(n);
	for(int i=1;i<=n;++i)
		bl[i]=(i-1)/siz+1;
	sort(q+1,q+k+1,cmp);
	int l,r;
	for(int i=1;i<=k;++i){
		if(bl[q[i].l]!=bl[q[i-1].l]){
			memset(mxr,-63,sizeof(mxr));
			memset(mnl,63,sizeof(mnl));
			l=r=min(n,bl[q[i].l]*siz);
			ret=0;
		}
		if(bl[q[i].l]==bl[q[i].r]){
			int mx=0;
			for(int j=q[i].l;j<=q[i].r;++j)
				t[a[j]]=0x3f3f3f3f;			
			for(int j=q[i].l;j<=q[i].r;++j){
				t[a[j]]=min(t[a[j]],j);
				mx=max(mx,j-t[a[j]]);
			}
			ans[q[i].idx]=mx;
			continue;
		}
		while(r<q[i].r)add(++r);
		int tmp=0;
		for(int j=q[i].l;j<=l;++j)//手残写成j<=q[i].r= =半天没调出来 
			t[a[j]]=0x3f3f3f3f;		
		for(int j=q[i].l;j<=l;++j){
			t[a[j]]=min(t[a[j]],j);
			tmp=max(tmp,max(mxr[a[j]]-j,j-t[a[j]]));//注意后面可能没有更新过这个颜色 
		}
		ans[q[i].idx]=max(ret,tmp);
	}
	for(int i=1;i<=k;++i)
		cout<<ans[i]<<"\n";
	return 0;
}

 

 

 

莫队算法完整总结(普通莫队、带修莫队、树上莫队、回滚莫队) 普通莫队、带修改莫队、树上带修改莫队、回滚莫队 阅读详情

相关推荐

我用两种方式玩转 MCP:CherryStudio vs VS Code 实测手记

MCP,全称,你可以理解为——给大模型装上“手脚”和“工具箱”。传统大模型像一位博学但手不能动的学者:“我知道怎么算圆周率,但没法打开计算器。而支持 MCP 的模型,能通过标准协议自动调用外部工具(比如fetch网络请求、readFile读文件、shell执行命令),真正做到“知行合一”。输入后**,保存,**之后就显示出来了MCP 不是“魔法”,而是把 AI 从“问答机”升级为“智能代理”的关键一步。工具本身不难,难的是“知道它能解决什么问题”。

zyq569的博客 1020

带修莫队及回滚莫队

我们说到了基础的莫队。今天我们来说一说带修莫队顾名思义,就是带修改的莫队。可是莫队是一个离线算法,如果让他在线就无法排序,就会退化成暴力。所以像DP一样我们给数组多开一维状态,记录时间。这样我们再多开一个指针,代表时间,在移动L,R的时候同时也移动一下时间指针即可。注:(这里时间的意思是与修改的相对时间,因为中间没修改的话,对答案没有影响,记录绝对时间还会占用空间,还不好处理)//写完注释感觉自己更通透了。

zwenqiyu的博客 319

知识推理——TransE(知识表示、知识嵌入)

知识图谱嵌入/表示方法 TransE

missyoudaisy的博客 1831

莫队算法

莫队算法,是由莫涛队长提出的,能够以玄学的复杂度处理区间查询类的问题。也可以说,他使用来解决线段树等数据结构不好维护的区间查询问题。

christ_lrs的博客 3807

AI大模型学习(14)AI 小白入门!用 OpenCV+Python 打造人体姿态识别系统,超详细教程来了

这篇教程介绍了如何使用Python+OpenCV+MediaPipe搭建入门级人体姿态识别系统。主要内容包括:人体姿态识别的应用场景(如健身APP、体感游戏)、开发环境搭建(安装Python、OpenCV和MediaPipe库)、核心代码实现(通过30行代码完成摄像头姿态检测),以及进阶功能开发(深蹲动作纠正算法和PPT体感控制器)。教程详细解析了MediaPipe的BlazePose模型架构和33个关键点的生理学意义,并提供了多线程优化等性能提升方案。该项目适合AI初学者实践,无需复杂算法即可实现实时人体

isoft888的专栏,致力于C#/python分享物联网、大数据,神经网络的等领域,欢迎讨论交流! 1551

【Qualcomm高通音频】如何封装音频控件?

音频代码涉及面很广,这篇文档介绍如何封装音频控件给HAL层使用。这里以AW87519芯片调试为例进行介绍封装音频控件和使用的方法。在最初接出到高通音频基础功能调试的时候,都是从tinyalsa指令/mixer_paths文件配置开始。因为单独一个音频设备的调试,都对应一条音频链路的打通。比如以下链接上高通平台基础音频输入输出设备调试: 【Qualcomm音频】Speaker 调试记录http...

crow_ch的博客 1954

回滚莫队解析

泻药,不匿(bushi)浅谈莫队 浅谈莫队 莫队是一个非常强的算法,它主要用于处理区间查询的问题,当区间查询的数量巨大且次数非常多时,普通的暴力查询最差达到O(N^N)的时间复杂度,而利用莫队算法可以大大缩短查询的时间。 莫队其实是利用对查询的离线处理,将查询排序,然后在前一个查询的基础上做数据的修改,道理其实非常简单,可以用一个模拟来代替抽象的言语形容 ...

qq_49662108的博客 2073

保姆级教程:在Rockchip RK3588 SDK中,如何为你的新硬件板子创建第一个DTS文件

本文提供在Rockchip RK3588 SDK中为自定义硬件创建首个DTS文件的详细教程。通过分析DTS在RK3588开发中的角色、快速定位参考设计、实操步骤及调试验证方法,帮助开发者高效完成硬件板级配置,特别适合嵌入式Linux系统开发者参考。

weixin_28678831的博客 284

2021ICPC江西省赛 Magic Number Group (普通莫队/回滚莫队 维护区间众数)

题目链接: Magic Number Group 大致题意 给定一个长度为nnn的序列, 有mmm次询问. 每次询问[l,r][l, r][l,r]中, 有相同公共质因子的最大数量. 解题思路 莫队 考虑到值域范围只有10610^6106, 因此对于每个数的不同质因子数量最多只有888个. 2×3×5×7×11×13×17>1062 \times 3 \times 5 \times 7 \times 11 \times 13 \times17 > 10^62×3×5×7×11×13×17&gt

Fau的博客 545

【AI概念】迁移学习 vs. 域自适应 vs. 域泛化|定义、核心原理、数学表达、易混淆点与工程选择建议|实际案例、工程实现细节、未来研究趋势、实际应用场景

大家好,我是爱酱。本篇将会详细梳理迁移学习(Transfer Learning)、域自适应(Domain Adaptation)、域泛化(Domain Generalization)三大常被混淆的核心概念,结合数学公式、典型算法与实际应用场景,帮助你厘清它们的本质区别、联系与工程意义。 注:本文章含大量数学算式、详细例子说明及大量代码演示,大量干货,建议先收藏再慢慢观看理解。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力!

AI人工智能爱酱~你的AI学习好帮手~ 2466

ASPICE学习笔记

ASPICE的全称是Automotive SPICE。

汽车电子软件领域知识分享 1355

莫队详细解析(基础、回滚)

莫队主要是维护区间信息的算法,大部分题都可以用其他高级的数据结构做。但莫队码量小,好理解(本质上是分块优化暴力),不失为一种好做法莫队代码看起来是暴力,但通过将询问按一些步骤排序降低了时间按复杂度。

m0_71198491的博客 3075

基于OpenClaw的自动化文件管理与文档分类系统设计与实现

本文介绍了一种基于OpenClaw的自动化文件管理与文档分类系统。系统采用三层架构设计,包含数据层、逻辑层和应用层,核心组件涵盖文件扫描、处理、分类、移动等功能。技术选型上使用Python/FastAPI作为后端,结合PostgreSQL/Elasticsearch/MinIO存储方案,并整合scikit-learn/PyTorch等AI技术实现智能分类。系统实现了文件递归扫描、增量扫描、元数据提取等功能,通过文件哈希和修改时间检测变化。该方案能有效提升文件管理效率,实现文档的自动化分类与智能管理。

一键难忘的博客 753

莫队细讲——从零开始学莫队

莫队算法 参考资料:https://www.cnblogs.com/WAMonster/p/10118934.html 不得不说,上面那篇写得实在太好了 前言——引入 关于莫队算法发明者——莫队·莫涛 众所周知,OIer常用“*队”来称呼实力强大的选手,就如:李队,刘队,杨队,何队 %%%%% 这位莫队,实在是太强了: 【NOI2009】 577577577 全国Rk1 ;前国家队队长 OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz

hyf_juruo的博客 3803

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

(回滚莫队)洛谷 P5906 【模板】回滚莫队/SP20644 Zero Query 题解

这是更加正统的回滚莫队。

m0_60506105的博客 990

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【莫队/树上莫队/回滚莫队】原理详解及例题:小B的询问(普通莫队),Count on a tree II(树上莫队),kangaroos(回滚莫队)

美丽的暴力才是坠dior的!

1421

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

[回滚莫队] 历史研究

IOI 国历史研究的第一人——JOI 教授,最近获得了一份被认为是古代 IOI 国的住民写下的日记。JOI 教授为了通过这份日记来研究古代 IOI 国的生活,开始着手调查日记中记载的事件。日记中记录了连续N天发生的事件,大约每天发生一件。事件有种类之分。第i天发生的事件的种类用一个整数Xi​表示,Xi​越大,事件的规模就越大。LRAWA​A×TA​TA​LR现在,您需要帮助教授求出所有事件中重要度最大的事件是哪个,。注意:教授有多组询问。

m0_64542522的博客 692

莫队算法(带修莫队、回滚莫队、树上莫队)-CUC-ACM-Spring-Training Rround

先通过一个例题来引入:给定一个数列和q次查询,每一次都查询一个区间内不同数字的个数并输出。如果暴力枚举每个区间,那么时间复杂度是Oqn2,一定会TLE。为了优化时间复杂度,我们使用双指针l,r,每查询一次,就在数组上将两个指针分别移动到需要查询的位置,一边移动一边更新要查询的值(有点像滑动窗口但是,查询的区间两端如果比较刁钻,那么l,r就会在数组上来回跑很多遍,也会超时。所以,我们可以先将所有的查询记录在数组q中,对这个q。

CUC-MenG的博客 1041

分块与莫队,分块的暴力美学

很多时候,对于维护区间的问题,想到要用某种数据结构,但是实现过于繁琐,或者遇到自己的知识盲区,在数据量以及题目时限较为客观的情况下,分块/莫队可以解决我们的问题,而且大多数时候代码简单,可以在赛时更快的取得AC。

EQUINOX1的博客 1093

回滚莫队

回滚莫队详解 会了莫队可以了解一下回滚莫队,这玩意可以解决莫队解决不了的问题, 而且莫队能解决的它都能解决,还好写一点。 不过没用学过莫队也没关系, 这玩意比莫队简单还好用。 下面详细的说下回滚莫队的流程。 假设现在有一个长度为nnn的序列和qqq次询问,每次询问都是查询[l,r][l, r][l,r]区间, 具体查询什么已经不重要了。 考虑离线。 首先将长度为nnn的序列进行分块,根据数学知识为n\sqrt{n}n​是最优的 想在将所有的[l,r][l, r][l,r]按lll分块, 对于每同一快的[l

weixin_45676038的博客 395

莫队详解

莫队实际很简(du)单(liu) 依照某位dalao的说法,就是两只小手(two-pointers)瞎跳 一.莫队(静态莫队) 我们以Luogu P3901 数列找不同为例讲一下静态莫队 这道题是个绿题,因为数据比较弱,但真是一道良心的莫队练手题 莫队是由前国家队队长莫涛发明的 莫队算法的精髓就是通过合理地对询问排序,然后以较优的顺序暴力回答每个询问。处理完一个询问后,可以使用它的信息得...

weixin_30888027的博客 874

莫队、回滚莫队、带修改莫队简单笔记

比较简单记录了普通莫队,回滚莫队,带修改莫队

佯设的博客 1185

(回滚莫队)洛谷 P7261 COCI 2009/2010 PATULJCI 题解

个小矮人在挖矿时,白雪公主在玩电脑,翻看图片,挑选漂亮的图片。图片中每个小矮人都有一顶彩色的帽子,有。如果一张照片上有一半以上的帽子是同一种颜色,那就是漂亮的。换句话说,如果图片上有。其他题解还有随机化 + upper_bound 的,比较厉害。不过这一题我打算用来复习回滚莫队。这一题如果用普通莫队,就是维护区间桶之后,枚举所有颜色,看看哪个颜色大于。个小矮人有相同颜色的帽子,那就是漂亮的图片。张图是否漂亮,如果漂亮,以什么颜色为主。区间查询个数,维护桶,还是莫队。个小矮人在森林里,当。

m0_60506105的博客 826

莫队算法拓展(回滚&不删除莫队)

上一篇讲了带修莫队的具体内容,在我看来带修莫队的思路比较清晰,无非是在跑区间的过程中加入元素的修改,只需要考虑查询与修改的时间相对性就可以了。这次要分享的是另一种莫队算法的拓展——回滚&不删除莫队。还是先贴一道经典例题。

Qlarkstar的博客 1358

莫队学习笔记

莫队

bgf0212的博客 1044
上一篇: 数据结构之分块
下一篇: Chef and Churu
DancingZ
博客等级 码龄9年 10粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值