(自用随笔)PAT A1022(30分)qsort问题待解决

YOLO26算法大门区域检测+训练好的模型+285张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[大门(gates)] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 64 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.6364** mAP50-95 | 0.4539 Precision | 0.7309 Recall | 0.6111 train/box_loss | 0.6662 train/cls_loss | 0.5916 val/box_loss | 1.3351 val/cls_loss | 1.5479 【训练过程分析】 训练过程可分成三个主要阶段:前期、中期和后期。刚开始时,模型的损失函数确实有了显著下降,box_loss 从0.6662开始,经过几轮的迭代,迅速降至0.5左右。但到了中期,loss 的下降速度明显放缓,甚至有停滞不前的趋势。这一现象在val/box_loss的表现上尤其明显,从1.3351缓慢上升至1.4左右,直到训练到64轮时才略有下降。在这一阶段,mAP50从0.6364仅轻微上升到0.64,提升有限。这期间,模型似乎陷入了平台期,进展缓慢,让人感到有些煎熬。从第30轮到第64轮,我频繁查看曲线图,希望能捕捉到一点改善的迹象,但都未能如愿。这个阶段也让我对模型的潜力产生了怀疑,担心训练过程可能需要更长时间才能看到显著改善。 进入后期阶段,尽管损失函数略有下降,但mAP50的提升并不明显,这让人感到非常... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

思路:定义一个结构体来存书,重点在格式化输入。本来不想用string的,但是发现char*还是麻烦,就用了string,最后结果也没有多慢,最后一个测试用例270ms,在没用map和set优化的情况下还可以了。。。

如果会熟练使用map和set,可以参考其他人的博客,有更快的算法。

做的时候遇到了几个坑,首先我一开始用的是qsort函数,但是对我这个结构体排序完之后,里面的string居然丢失数据了!用sort就没事了。如果有大佬懂的话,希望可以点拨一下~

第二个坑是fflush这个函数,这个不是c/c++标准里面的,最好不要用了。想吸收每行输入结束的回车符,还是用getchar()吧。

AC代码:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <string>
#include <sstream>
#include <string.h>
#include <algorithm>

using namespace std;

struct Book{
    int id;
    string title;
    string author;
    vector<string> keywords;
    string publisher;
    int year;
};
Book *book;

int N,M;
string *query;

bool cmp(Book _a,Book _b)
{
    //Book *a = (Book*)_a;
    //Book *b = (Book*)_b;
    return _a.id < _b.id;
}

void Sear(int x,int index)
{
    int booknum = 0;
    switch(x)
    {
    case 1:
        for(int r = 0;r<N;r++)
        {
            if(book[r].title == query[index])
            {
                printf("\n%07d",book[r].id);
                booknum++;
            }
        }
        break;
    case 2:
        for(int r = 0;r<N;r++)
        {
            if(book[r].author == query[index])
            {
                printf("\n%07d",book[r].id);
                booknum++;
            }
        }
        break;
    case 3:
        for(int r = 0;r<N;r++)
        {
            for(int g = 0;g<book[r].keywords.size();g++)
            {
                if(book[r].keywords[g] == query[index])
                {
                    printf("\n%07d",book[r].id);
                    booknum++;
                    break;
                }
            }

        }
        break;
    case 4:
        for(int r = 0;r<N;r++)
        {
            if(book[r].publisher == query[index])
            {
                printf("\n%07d",book[r].id);
                booknum++;
            }
        }
        break;
    case 5:
        for(int r = 0;r<N;r++)
        {
            if(book[r].year == atoi(query[index].c_str()))
            {
                printf("\n%07d",book[r].id);
                booknum++;
            }
        }
        break;
    }
    if(booknum == 0)
    {
        printf("\nNot Found");
    }
}

int main()
{
    scanf("%d",&N);
    book = new Book[N];
    char temp[80];
    string s;
    char c;
    for(int i = 0;i<N;i++)
    {
        scanf("%d",&book[i].id);
        //fflush(stdin);
        c = getchar();
        scanf("%[^\n]",temp);
        //fflush(stdin);
        c = getchar();
        book[i].title = temp;
        scanf("%[^\n]",temp);
        //fflush(stdin);
        c = getchar();
        book[i].author = temp;
        //cout<<book[i].author<<endl;
        scanf("%[^\n]",temp);
        //fflush(stdin);
        c = getchar();
        s = temp;
        stringstream ss(s);
        string x;
        while(ss>>x)
        {
            book[i].keywords.push_back(x);
            x = "";           //清空字符串x
        }
        //cout<<book[i].keywords[0]<<book[i].keywords[1];
        scanf("%[^\n]",temp);
        //fflush(stdin);
        c = getchar();
        book[i].publisher = temp;
        scanf("%d",&book[i].year);
    }
    //cout<<book[0].author<<endl<<book[1].author<<endl<<book[2].author<<endl;
    sort(book,book+N,cmp);
    //cout<<book[0].author<<endl<<book[1].author<<endl<<book[2].author<<endl;
    scanf("%d",&M);
    query = new string[M];
    int num;
    for(int j = 0;j<M;j++)
    {
        scanf("%d: ",&num);
        scanf("%[^\n]",temp);
        //fflush(stdin);
        c = getchar();
        query[j] = temp;
        cout<<num<<": "<<query[j];

        Sear(num,j);
        if(j!=M-1)
        {
            printf("\n");
        }
    }
    return 0;
}

 

下面这个是第一次写的代码,排序后输出author,发现出错了

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <string>
#include <sstream>
#include <string.h>
#include <algorithm>

using namespace std;

struct Book{
    int id;
    string title;
    string author;
    vector<string> keywords;
    string publisher;
    int year;
};
Book *book;

int N,M;
string *query;

int cmp(const void* _a,const void* _b)
{
    Book *a = (Book*)_a;
    Book *b = (Book*)_b;
    return a->id > b->id;
}

void Sear(int x,int index)
{
    int booknum = 0;
    switch(x)
    {
    case 1:
        for(int r = 0;r<N;r++)
        {
            if(book[r].title == query[index])
            {
                printf("\n%07d",book[r].id);
                booknum++;
            }
        }
        break;
    case 2:
        for(int r = 0;r<N;r++)
        {
            if(book[r].author == query[index])
            {
                printf("\n%07d",book[r].id);
                booknum++;
            }
        }
        break;
    case 3:
        for(int r = 0;r<N;r++)
        {
            for(int g = 0;g<book[r].keywords.size();g++)
            {
                if(book[r].keywords[g] == query[index])
                {
                    printf("\n%07d",book[r].id);
                    booknum++;
                    break;
                }
            }

        }
        break;
    case 4:
        for(int r = 0;r<N;r++)
        {
            if(book[r].publisher == query[index])
            {
                printf("\n%07d",book[r].id);
                booknum++;
            }
        }
        break;
    case 5:
        for(int r = 0;r<N;r++)
        {
            if(book[r].year == atoi(query[index].c_str()))
            {
                printf("\n%07d",book[r].id);
                booknum++;
            }
        }
        break;
    }
    if(booknum == 0)
    {
        printf("\nNot Found");
    }
}

int main()
{
    scanf("%d",&N);
    book = new Book[N];
    char temp[80];
    string s;
    char c;
    for(int i = 0;i<N;i++)
    {
        scanf("%d",&book[i].id);
        //fflush(stdin);
        c = getchar();
        scanf("%[^\n]",temp);
        //fflush(stdin);
        c = getchar();
        book[i].title = temp;
        scanf("%[^\n]",temp);
        //fflush(stdin);
        c = getchar();
        book[i].author = temp;
        //cout<<book[i].author<<endl;
        scanf("%[^\n]",temp);
        //fflush(stdin);
        c = getchar();
        s = temp;
        stringstream ss(s);
        string x;
        while(ss>>x)
        {
            book[i].keywords.push_back(x);
            x = "";           //清空字符串x
        }
        //cout<<book[i].keywords[0]<<book[i].keywords[1];
        scanf("%[^\n]",temp);
        //fflush(stdin);
        c = getchar();
        book[i].publisher = temp;
        scanf("%d",&book[i].year);
    }
    //cout<<book[0].author<<endl<<book[1].author<<endl<<book[2].author<<endl;
    qsort(book,N,sizeof(Book),cmp);
    cout<<book[0].author<<endl<<book[1].author<<endl<<book[2].author<<endl;
    scanf("%d",&M);
    query = new string[M];
    int num;
    for(int j = 0;j<M;j++)
    {
        scanf("%d: ",&num);
        scanf("%[^\n]",temp);
        //fflush(stdin);
        c = getchar();
        query[j] = temp;
        cout<<num<<": "<<query[j];

        Sear(num,j);
        if(j!=M-1)
        {
            printf("\n");
        }
    }
    return 0;
}

测试数据:(Yue后面的Chen被吃了,并且没有正确按照id大小排序) 

状态估计【卡尔曼滤波kalman】UKF、EKF、粒子滤波PF学习与研究(Matlab代码实现) 内容概要:本文围绕非线性状态估计中的三种经典滤波算法——无迹卡尔曼滤波(UKF)、扩展卡尔曼滤波(EKF)和粒子滤波(PF)展开系统性学习与研究,重点在于通过Matlab编程实现这些算法的核心流程,并将其应用于实际系统的状态估计问题中。文档不仅详细阐述了各算法的数学原理、适用条件与性能差异,还提供了完整的仿真代码与案例分析,帮助读者深入理解其在非线性、非高斯环境下的表现特性。同时,资源拓展至EKF与神经网络融合训练、多源数据融合等高级应用场景,展现了其在智能控制、无人机导航、电力系统状态估计、目标跟踪等领域的广泛应用价值。; 适合人群:具备一定信号处理、控制理论或状态估计基础的研究生、科研人员及工程技术人员,尤其适用于从事自动化、机器人、导航、电力电子与智能系统等相关方向的研究与开发工作者;; 使用场景及目标:① 掌握UKF、EKF与PF在非线性系统中的建模思路与Matlab实现方法,理解其优缺点与适用边界;② 提升科研仿真能力,能够独立构建状态估计模型并进行算法对比验证;③ 将所学方法应用于如电池SOC估算、无人机姿态估计、传感器融合、故障诊断等实际工程问题中;; 阅读建议:建议结合Matlab动手实践,逐行解读并调试所提供的代码,深入理解算法实现细节;同时可延伸学习文中提及的数据融合、神经网络与滤波器结合等进阶主题,以构建完整的状态估计技术知识体系。 立即下载

相关推荐

Plecs全桥LLC谐振变换器仿真模型

内容概要:本文档系统性地整合了电力电子与控制系统仿真领域的丰富资源,聚焦于基于Plecs和Simulink平台的高频软开关变换器建模与仿真,涵盖全桥LLC、双向CLLC、DAB、PFC、Vienna整流器、Buck-Boost等多种典型拓扑结构。资源内容不仅包括闭环控制(如变频控制、移相混合控制、双闭环、恒压恒流双竞争控制)的仿真模型,还配套提供详细的参数设计报告、Mathcad计算书、PPT说明文档及参考文献,构建了从理论建模到工程实现的完整技术链条。此外,文档拓展至状态估计(如卡尔曼滤波、EKF、UKF、PF)与智能算法(如BP神经网络、模型预测控制)在电力系统中的融合应用,为先进控制策略的研究与复现提供了坚实支撑。; 适合人群:面向具备电力电子、自动控制或电气工程等相关专业背景,熟练掌握MATLAB/Simulink/Plecs等仿真工具,从事高频开关电源、新能源变换系统、储能系统或车载电源研发的研究生、高校科研人员及企业工程技术人员。; 使用场景及目标:① 学习并掌握全桥LLC等谐振变换器的核心工作原理与闭环控制系统设计方法,特别是变频与移相控制策略的实现细节;② 利用提供的仿真模型与Mathcad计算工具,快速完成实际项目中的参数设计、性能验证与优化迭代;③ 结合状态估计算法与神经网络等智能方法,开展电力电子系统状态观测、故障诊断或控制策略创新等前沿科研课题的复现与探索。; 阅读建议:建议严格按照资源目录结构循序渐进地查阅,优先下载并运行核心仿真模型,结合对应的设计报告与计算书深入理解其建模逻辑与参数推导过程,重点关注闭环控制架构、软启动策略及中点电位平衡等关键技术环节,并可进一步将状态估计与智能算法模块融入现有模型,探索其在系统优化中的应用潜力。

PAT乙级补充知识:qsort(),结构体排序

PAT乙级补充知识:qsort(),结构体排序 对结构体一级排序 #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; struct node { double data; int other; }s[100]; //按照data的值从小到大将结构体排序,关于结构体内的排序关键数据data的类型可以很多种 int cmp( const vo...

石旭先森的博客 210

DRAM 埋入式字线(Buried Wordline)技术深度解析:从二维平面到三维凹槽

埋入式字线(bWL)及其核心的埋入式沟道阵列晶体管(BCAT)架构,无疑是 DRAM 发展史上的一次关键性革命。它在约 40nm 技术节点被行业主流采纳,成功地帮助 DRAM 产业克服了传统平面晶体管的物理缩放极限。力挽狂澜的续命技术:bWL 通过引入三维沟道结构,从根本上解决了由短沟道效应和漏电流失控引发的数据保持危机,为经典的 1T1C(单晶体管 - 单电容)DRAM 单元架构延续了超过十年的生命力。协同优化的基石技术。

m0_37606066的博客 3326

PAT乙级,C语言版,题解

由于本人非科班出身,刷题时遇到许多麻烦,故写此总结希望能帮助一些像我一样刚开始遇到困难的初学者。不过本人水平有限,能得满分的题不多,有很多题都会扣个几分,也希望大佬能帮助本人指出错误。 1001(15)(15) ...

weixin_43916400的博客 2661

【从零开始学Skynet】实战篇《球球大作战》(一):功能设计

为了能把之前在基础篇中学习到的Skynet的各种知识结合起来,所以在实战篇中,我们准备开发一个完整的游戏案例《球球大作战》,介绍分布式游戏服务端的实现方法。

我是一条寻水的鱼 2978

Calibre电子书阅读器个性化样式定制指南

本文详细介绍了如何通过Calibre电子书阅读器的用户样式表功能进行深度个性化样式定制。从修改全局字体、行距、背景配色(包括深色/浅色模式)到美化代码块、引用等特殊元素,本指南提供了完整的CSS代码示例与实战技巧,帮助用户打造专属的舒适阅读环境,显著提升电子书阅读体验。

vv45678的博客 920

刷codeup及PAT的知识漏洞整理

1、动态二维数组声明: int** a2 = new int*[rows]; for(int i=0;i<rows;i++) a2[i] = new int[columns]; 2、scanf遇到空格会结束。(%s也是) 但最后的空格、换行等会留在缓冲区。 3、qsort使用stdlib.h,其中的sizeof()中填数组类型。 Cmp函数,返回值为负则不交...

Freedomer_的博客 355

STM32:TTL串口调试

TTL只需要两个线就可以完成两个设备之间的双向通信,一个发送电平的I/O称之为TX,与另一个设备的接收I/O口RX相互连接。两设备之间还需要连接地线(GND),这样两设备就有相同的0V参考电势。

superSmart_Dong的博客 5636

(自用随笔)PAT A1014

一道queue的时间模拟题。最后一个样例没过,不想再改了~ 思路是,写一个处理函数,每次处理一个顾客,让他的处理时间归零,然后递加当前时间now,把now存入finish数组中。 有几个坑,首先第一遍题目我读错了,只有开始服务时间在17点之后的顾客才会被sorry,而结束时间在17点之后的正常输出。 第二个坑是会出现几个顾客同时处理完毕的情况,大概有2个测试用例。 在写程序的过程中也要注意...

Freedomer_的博客 312

YOLOv11改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度

ASF-YOLO是一种基于YOLO的新颖框架,结合了空间和尺度特征以实现准确和快速的分割。其中,注意力尺度序列融合模块。

Limiiiing的博客 4389

【Mode】Mode expansion monitors

对于宽带仿真,因为被支持的模式可能是波长的函数,因此,推荐在波长范围内增加频率的采样点数量去计算支持的波导模式分布或者光纤模式分布。对于宽带仿真,如果在被计算模式上的频率点的数量与通过 frequency-domain monitors 被测量的频率点的数量不匹配,这种情况是正常的。Mode expansion monitors 对于仿真偏振转换器是十分有用的,比如,在偏振转换器中,当你想要提取从输入模式到输出模式的转换效率,或者提取一个装置的 S 参数。给出了进入到被选择模式中的合透射率,

u011699626的博客 2760

(自用随笔)PAT A1007 Maximum Subsequence Sum

这题通过率低的可怕。。。确实有几个坑。 1、首先题目要求输出的是最大子序列的首元素和尾元素,而不是下标。给的测试样例正好是元素也是下标,容易被误解(我就看错了)。 2、题目中没有说数字有没有0,所以要考虑进去;我写的程序里面,把0当做正数来处理,比较方便。 #include <iostream> #include <stdio.h> using namespac...

Freedomer_的博客 293

Python进阶005:修改Jupyter Notebook的工作路径

1、Jupyter Notebook简介 2、修改Jupyter Notebook的工作路径 如下三个步骤: 一、安装notebook 在CMD命令行中输入: pip install notebook 二、启动notebook jupyter notebook 启动后发现是在你的用户目录下,如下图所示,但是该目录下有很多的其他文件或文件夹,因此我想把这个环境切换到我单门创建的一个文件夹中。 三、创建notebook的配置文件 在CMD命令行中执行: jupyter notebook --genera

若北辰 1384

(自用随笔)PAT A1013

一个DFS的题,一开始当做并查集的题来做了。。 思路就是对每个没有被访问过的节点进行图的遍历,如果只有一个连通分支,则只需要DFS一次就可以;若有多个连通分支,就会进行多次DFS。 在空间允许的情况下最好使用一个临时二维数组来存储每次去掉一个节点后的图,遍历完恢复就可以了。 #include <iostream> #include<stdio.h> using n...

Freedomer_的博客 284

把 OData V4 服务真正发布出去:事务码 /IWFND/V4_ADMIN 在 SAP S/4HANA On-Premise 里的定位与用法

本文介绍了SAP S/4HANA中的事务码/IWFND/V4_ADMIN,这是SAP Gateway管理OData V4服务的关键工具。该事务码主要负责将后端注册的OData V4服务以服务组形式发布到前端,并维护系统别名路由、测试入口和日志跳转。与OData V2不同,V4采用服务组概念以支持跨服务导航,类似商场统一管理多个专柜。文章还通过实际案例说明,未发布服务组会导致BAS等工具无法发现OData V4服务,并提供了验证服务组状态的访问路径和ABAP示例代码。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 207

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

(自用随笔)PAT A1029 Median

听说这个题原本内存限制1.5MB,太严格了。。逼着你去用归并排序。我写的时候没有想到,直接暴力存数组,然后从头一个一个比较,直到(n+m)/2的位置结束。但思想还是归并。 #include <iostream> #include <stdio.h> #include <algorithm> using namespace std; int N,M; lon...

Freedomer_的博客 279

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

(自用随笔)PAT A1021(25分)

暴力搜索,测试点3用了1200ms。。。。尴尬。 测试点2比较坑,连通分支数大于2,而我一开始的代码是,一旦连通分支大于1则跳出。。。 暴力思路:先把节点1作为根,用一次图的遍历模板,将连通分支数算出来,若大于1则输出Error;若等于1,则把剩下的节点分别作为根,遍历,算出各自的最大深度,最后输出最大深度的节点。 优化的思路请参考其他博客~ #include <iostream&...

Freedomer_的博客 276

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

(自用随笔)PAT A1010

计算一个数是否能通过某个进制转换为另一个数的问题。 思路就是把输入的数据转化为全数字,再计算number大小。在计算第二个不知道进制的数时,从最低位开始计算,一旦数字超过了number1,就让进制加一,重新计算,知道数字大小相等。 网上比较高效的方法是二分法找进制,我用的笨方法,从2开始往上找。 坑点就是数字可能会超过int的范围,而且可能会超过long long int的范围。当溢出时,数...

Freedomer_的博客 264

(自用随笔)PAT A1024

涉及大数运算,本人用的很笨的方法,当数字长度超过10时,分两个char数组将数字长度大于10的部分和小于10的部分分开存起来,然后转成long long型大整数再运算。只过了前六个样例,改不动了。。不过收获很多: #include <iostream> #include <stdio.h> #include <string> #include <cst...

Freedomer_的博客 261

(自用随笔)PAT A1012

一个排序题,需要对4个分数4次排序,每次排序完成后将当前名次记录到grank数组中。做这个题之前参考了算法笔记的思路,但是它用了静态数组直接开了一个一百万*4的int数组,算了下要占15M,典型的空间换时间。。我比较喜欢动态开数组,所以自己写了一个。 不过关于成绩相等的情况题目没有说,这有点蛋疼,看了别人的博客才知道,98、90、90、88这种情况要按1,2,2,4来算。 #include...

Freedomer_的博客 244

(自用随笔)PAT A1004 Counting Leaves

#include <stdio.h> #include <iostream> #include <stdlib.h> #include <queue> #include <string.h> using namespace std; int N,M; int maxlevel = -1; int num[105] = {0}; st...

Freedomer_的博客 244

(自用随笔)PAT A1006 Sign In and Sign out

#include <iostream> #include <stdio.h> using namespace std; int M; int early = 23*3600 + 59 * 60 + 59; int late = 0; int p1; int p2; int main() { scanf("%d",&M); char **per...

Freedomer_的博客 242

(自用随笔)PAT A1017 Queueing at Bank

第一个思路就是模拟,每次模拟时间加一秒。但写出来发现太麻烦了。细节太多,结果错了也找不到错误的地方。。。。 #include <iostream> #include <stdio.h> #include <algorithm> #include <stdlib.h> #include <vector> #include <que...

Freedomer_的博客 238

(自用随笔)PAT A1047 Student List for Course

这个题费了半天劲才做出来,有些知识点还是没有掌握。 第二个测试点过不了,不知道哪里出问题了。 #include <iostream> #include <stdio.h> #include <vector> #include <algorithm> #include <cstring> using namespace std; i...

Freedomer_的博客 227

(自用随笔)PAT A1005 Spell It Right

#include <iostream> #include <map> #include <stdio.h> #include <stdlib.h> #include <string.h> using namespace std; map<int,char*> m; int N = 0; void init(); int...

Freedomer_的博客 223
上一篇: (自用随笔)PAT A1021(25分)
下一篇: 20一战北航计算机系考研、调剂经验分享(初试篇)
Freedomer_
博客等级 码龄9年 17粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值