奇奇怪怪的字符串循环同构问题

基于特定格式字符串的差异标记算法 基于特定格式字符串的差异标记算法 实验室项目中遇到这样一个需求,将OCR识别后的两段文字进行互相校验并标记出差异。两段文字分别来自不同源的OCR识别,自然会存在差异,而且本身也有误差。实际上这个标记是十分麻烦的,不同于普通的字符串算法,它是一种更加模糊,而且多变但又有着特殊形式的字符串。之前考虑过匹配算法如KMP、自动机之类都不适合;考虑相似度检测的算法如编辑距离和余弦相似度也不适合,实际上不需... 阅读详情

昨天看到篇奇怪的论文……讲最小表示法的比较的。

有字符串S1、S2,|S1| = |S2|,请在O(N)时间内判断是否存在 i 使得

S1[i...|S1|]+S1[1...i]=S2S1[i...|S1|]+S1[1...i]=S2

显然朴素算法 O(N2)O(N2)

高级的话可以用KMP什么的模版串匹配算法,将S1复制一遍,在里面匹配S2就可以了。

然后论文里有一种非常神奇的做法。

显然两个字符串循环同构的充分必要条件是这两个字符串的最小表示法相等。

令S1′=S1+S1S1′=S1+S1,S2′=S2+S2S2′=S2+S2

显然存在i使得S1′[i...i+|S1|−1]S1′[i...i+|S1|−1]为S1的最小表示法,S2同理(设为j),i,j<=|S1|i,j<=|S1|。

首先令i=1,j=1,当遇到第一个k使 S1′[i+k]≠S2′[i+k]S1′[i+k]≠S2′[i+k]时

若S1′[i+k]>S2′[j+k]S1′[i+k]>S2′[j+k]

则显然,若两串循环同构,存在l>i+kl>i+k使得S1′[l...l+k]=S2′[j...j+k]S1′[l...l+k]=S2′[j...j+k],因而对于任意从i...i+ki...i+k开始的串都不可能是S1的最小表示,直接i=i+k+1i=i+k+1

S1′[i+k]<S2′[j+k]S1′[i+k]<S2′[j+k]同理

PS.如果匹配时发现k>=|S1|k>=|S1|说明发现同构,若i,j>|S1|i,j>|S1|说明不同构。

15、目标检测模型的评估指标与YOLO算法解析 本文详细解析了目标检测模型的评估指标,包括精确率、召回率、AP、mAP及IoU的定义与作用,并深入介绍了YOLO算法的核心原理与推理流程。从网格划分、锚框引入到边界框细化与后处理,全面阐述了YOLO如何实现快速准确的目标检测。同时总结了YOLO在智能安防、自动驾驶和工业检测等领域的应用,并展望了其未来在准确性提升、多类别支持和技术融合方面的发展趋势。 阅读详情

相关推荐

【微知】关于GB200 NVL72服务器的一些信息?(36CPU72GPU;LPDDR5X 17T;HBM3e 13.5T;5代NVlink 1.8TB; 720P算力FP8;120Kw)

本文仅根据官网介绍分析,存在纰漏仅供参考。

技术札记 5386

最小表示法(循环同构串)

定义 长度为n的序列,循环同构串中字典序最小的就是最小表示 序列 4 3 2 1 ,它的循环同构串为 3 2 1 4 ,2 1 4 3 ,1 4 3 2 ,其中字典序最小的就是1 4 3 2 解释 我们最先想到的就是暴力枚举+判断 ,可以对所给序列进行枚举所有的字典序,然后找出最小的字典序即可,但是我们枚举+判断的时间复杂度是很高的,那么我们继续优化 观察发现:对于给定的序列,其中如果所有元素都不重复的化,就例如上述例子,我们找到字典序最小的一定是以最小元素开头的,4 3 2 1 4

qq_44791484的博客 1074

毫米波雷达入门知识

毫米波雷达入门知识

ssbzxcvbnm1234567的博客 5444

【字符串循环同构的最小表示法】

循环字符串的最小表示法的问题可以这样描述: 对于一个字符串S,求S的循环的同构字符串S’中字典序最小的一个。 由于语言能力有限,还是用实际例子来解释比较容易: 设S=bcad,且S’是S的循环同构的串。S’可以是bcad或者cadb,adbc,dbca。而且最小表示的S’是adbc。 对于字符串循环同构的最小表示法,其问题实质是求S串的一个位置,从这个位置开始循环输出S,得到的S’字典序最

leolin_的专栏 1380

倒立摆入门详解+pid调参

倒立摆制作全过程 最近在练习pid的控制算法,就选用了2013年的电子设计国赛题目:倒立摆 。 首先给你们看看我的成果 注意哦:倒立摆不是靠上面黄色的传感器保持平衡的,而是通过下面的电机左右扭动使得摆杆不掉下来,难度可不小了。 材料准备 1.机械部分 如图所示选好电机和角位移传感器进行组装就好了,这个部分是我直接网上购买的,如果要自己装也是可以的,不过会比较麻烦,结构差不多的。 2.主控部分 这个部分的话完全是我自己设计的,作用和网上买的一样,因为网上买的话太贵了,有需要的话可以联系我,有pcb文件

small_po_kid的博客 2万+

金蝶云苍穹-插件开发(一)加载数据

此系列博客是进行金蝶云苍穹开发时的插件开发的教程,一是在明年要是还要参加软件杯金蝶A6赛题的话,可以看此系列教程的博客来进行复习,同时如果要是我实验室的学弟学妹要参加的话,我这个系列的博客可以给他们提供学习参考,因为插件开发学习的路上很艰难,我学习的时候,能参照的讲解少,要花费大量工夫去猜测去调试才能学会那些语法。在插件开发上,希望我这个系列的博客能帮助到别人。这个系列的博客只专门讲解插件开发,基本的那些金蝶云苍穹的知识点在这里不多作讲解。

二狗mao的博客 3587

同构数(循环)

具有下面性质的数a称为"同构数":设b是a的平方,a与b的低若干位相同。输入两个整数a,b (0<=a, b<=99),找出a、b之间全部的同构数。控制台上按照由小到大的顺序输出所有同构数.每一个整数占一行.在0-30之间的同构数有0, 1, 5, 6, 25.控制台输入0-99之间的两个整数a和b.

chenxing118149的博客 352

Qwen3.5本地部署实战:4B模型在RTX3060上离线运行指南

大语言模型本地化部署正从云端服务转向终端设备,其核心是模型轻量化、硬件适配与推理引擎协同优化。基于INT4量化感知训练和GGUF格式支持,Qwen3.5在结构精简、Tokenizer轻量及显存友好性方面显著优于前代,使4B级别模型可在RTX 3060等中端显卡上稳定运行。该技术路径兼顾低延迟响应(<2秒)、数据隐私保障与离线可用性,广泛适用于法律文书分析、医疗文档处理、教育AI助手等对安全性与实时性双重要求的场景。本文聚焦Qwen3.5-4B量化部署全流程,涵盖llama.cpp编译调优、GPU层加载策略及

weixin_32181267的博客 365

判断两个字符串是否循环同构

设字符串A,和B 判断A 与 B是否循环同构: 令字符串C = A + A(A重复) 通过KMP在C中查找B,若B存在于C中则A与B循环同构

correct 1402

MTK Linux DRM分析(十一)- MTK KMS Panel显示屏驱动

面板扩展(Panel Extension)是指 MediaTek 在标准 DRM 面板驱动框架之上添加的定制化功能模块。

iTom1900 1687

dji psdk开发 关于SDK认证芯片的使用

Payload SDK V3.10.0 于 2025-1-8 发布,增加了 Matrice 4T/4E 机型支持,同时也增加了 DJI SDK 认证芯片(DJI SDK CC)功能支持。关于认证芯片的介绍大疆 SDK 认证芯片(DJI SDK Certified Chip),简称 DJI SDK CC,用于认证基于 DJI Eport/Eport-Lite 接口开发的第三方负载设备,确保设备能够正常工作并与无人机可以进行有效通信,起到负载安全认证和功能授权的作用。

热爱生活,忠于自己 2145

要检查一个字符串是否可以由它的一个子串重复多次构成

例如,对于字符串 “abcabcabc”,拼接后的字符串是 “abcabcabcabcabcabc”,去掉第一个和最后一个字符后的子串是 “bcabcabcabcabcab”,这个子串包含了原始字符串 “abcabcabc”,所以原始字符串 “abcabcabc” 可以由它的一个子串 “abc” 重复多次构成。这个函数首先将字符串 s 与自身拼接,然后从第二个字符开始到倒数第二个字符结束的子串中查找原始字符串 s。如果找到了,那么说明原始字符串 s 可以由它的一个子串重复多次构成。

前端精髓 814

LFM线性调频信号的MATLAB仿真

线性调频(LFM)是一种不需要伪随机编码序列的扩展频谱调制技术。由于线性调频信号占用的频带宽度远大于信息带宽,所以也可以获得很大的系统处理增益。线性调频信号又称鸟声(Chirp)信号,因为其频谱带宽落于可听范围,则听若鸟声,所以又称Chirp扩展频谱(CSS)技术。LFM技术在雷达、声纳技术中有广泛应用,如在雷达定位技术中,它可在增大射频脉冲宽度、提高平均发射功率、加大通信距离同时又保持足够的信号频谱宽度,不降低雷达的距离分辨率。线性调频(LFM)是一种不需要伪随机编码序列的扩展频谱调制技术。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 903

各种奇奇怪怪的经验

1.前缀和:遇到一个字符串吧,并且字符不相同的有很多,比如一串由26个英文大写字母组成的长字符串a,这种情况我们如何快速简洁地记录前缀和呢? 答;定义一个存储前缀和的数组 int s[],找到字符串中最小的一个字符c为基准,那么可以: for(int j=0;j<a.size();j++) s[a[j]-c]++; 以上这种方法就的复杂度就是a.size()。 错误思路:每次在for...

qq_44090228的博客 185

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

shell入门:脚本里那些奇奇怪怪的写法

1. 字符截取 写法:${x:y:z} 解释:把$x变量中的字符从第y个字符(包含第y个)向后截取z个字符 2. 带返回值的函数调用 受限在函数中用echo输出变量,再调用的时候用``涵盖调用,传递给返回值 function a(){     echo $1 } ret=`a 123` echo ret: $ret 最后输出的是 ret: 123

Ls4034的专栏 674

android 蓝牙通讯demo

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

字符串——3.重复的子字符串

首先,我们来分析一下这个自定义函数getNext,在分析之前,我先简单讲一下这个解法的原理,如果字符串s是由它的子串重复构成的,那么一定存在两种特征,一是最小子串的长度是能被原始子串s长度整除的(这个很容易理解,最小子串长度如果是3的话,那你重复构成的s长度肯定是3的倍数吧);那么题目就转化为了在s+s中寻找有没有s,利用python中的find函数就可以完成了,但是在s+s中寻找s总感觉奇奇怪怪的,既然是s+s那其中不本来就有s么,怎么判断是原始的s还是新组成的字符串中的s呢?首先判断nxt[-1]!

plutomty的博客 2898

深度学习工具包 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")

C基础遇见的一些奇奇怪怪的问题

C语言基础新手的奇奇怪怪的问题

Liuyeyeya的博客 306

定制Newtonsoft的Json字符串转换器,解决reference loop等问题

对于需要特殊处理的字段,需要自己写转化字符串的方法。比如说我创建了个类叫myclass,它的大部分字段都是常规的double string int这些,但是它有一个字段叫neighbour用来记录哪些是它的邻居,很明显neighbour也是myclass类型,并且肯定会发生这种情况:A的neighbour是B, B的neighbour又指回A。

nichongben的博客 676

ACM之奇奇怪怪的知识

ACM里一些奇奇怪怪的知识,说不定能帮到你。

code___farmer的博客 754

《JavaScript 秘密花园》—一些奇奇怪怪的知识

读《JavaScript 秘密花园》,根据自己知识缺漏摘抄部分内容,以及实际代码执行结果

qq_40029828的博客 1327

那些奇奇怪怪的语句

标签语句标签由语句前面的标识符与冒号组成:identifier: statement可以形象的理解为标签名就是语句块的一个外号,比如我们一说卷福,就知道是这个家伙要注意的是,标识符一定要合法,不能是保留字说了这些注意事项,那么,标签能干些什么呢?事实证明,当给语句块定义标签的时候,它才会更有用。一般情况下,我们会将标签与break(跳出循环)和continue(跳过本次循环)相结合,从而达到好的效果

月亮门下 575

一些奇奇怪怪的c++技巧(一)

快速的输入输出: cin比getchar确实是慢很多,所以一些还算程序运行时间的排名的oj比赛,可以用getchar输入节约时间来刷排名。 快速输入: inline int read() { int k=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){k=k*10+ch-'0';ch=get

windyuan~ 333

字符与字符串的读入,格式化输入输出

主要分成两个部分:字符串输入办法,scanf和printf的格式说明字符串

qq_45809243的博客 1898

接收指定长度_那些奇奇怪怪的需求一:PinyinHelper的使用、生成指定长度随机码...

背景:需求是要给每条数据生成一个字符拼音首字母+6位字母数字的随机码。嗯简单易懂。1、生成6位长度的随机码。这玩意还挺好理解的,首先明白字符串String是由一个一个char字符组成的数组(字面理解)。String里面有个方法charAt(int i),i参数是指String字符串的下标索引(也就是char[]数组的下标索引),比如一个String str = "哈哈哈123abc";//这里不分...

weixin_28340315的博客 193

【牛客网】公共字符串计算

题目描述 计算两个字符串的最大公共字串的长度,字符不区分大小写 输入描述: 输入两个字符串 输出描述: 输出一个整数 示例: 输入 asdfas werasdfaswer 输出 6 解题思路 因为字符不区分大小写,所以可以先将所有大写字符 +32 转换成小写字符。(其实牛客网中的这道题并没有考察到这个点) 思路一:将较短的字符s1的长度作为外层循环,然后用s1中的每个字母在s2中查找,如果存在...

ly_6699的博客 551

加密生成指定长度_那些奇奇怪怪的需求(一):PinyinHelper的使用、生成指定长度的随机码...

背景:需求是要给每条数据生成一个字符拼音首字母+6位字母数字的随机码。嗯简单易懂。1、生成6位长度的随机码。这玩意还挺好理解的,首先明白字符串String是由一个一个char字符组成的数组(字面理解)。String里面有个方法charAt(int i),i参数是指String字符串的下标索引(也就是char[]数组的下标索引),比如一个String str = "哈哈哈123abc";//这里不分...

weixin_39972019的博客 184
下一篇: CodeForces AIM Tech Round 3 (Div. 2) D
ceerrep
博客等级 码龄11年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值