Codeforces Round #668 (Div. 2)A-D题解

空间节省算法在Rowhammer防御中的应用与优化 空间节省算法(Space-Saving)是一种高效的流式数据处理算法,主要用于在有限内存条件下实时识别数据流中的高频项。其核心原理是通过维护固定大小的计数器表,动态跟踪最活跃的元素,适用于处理无限数据流场景。该算法在内存安全领域具有重要价值,特别是在Rowhammer攻击防御中,能够有效检测异常高频访问的DRAM行地址。通过结合计数器衰减策略(如DSAC)和混合架构设计,空间节省算法可以在保证低硬件开销的同时,提供高精度的攻击检测能力。这些技术已成功应用于现代DDR5内存控制器,展现出优异的工程实践价值。 阅读详情

Codeforces Round #668 (Div. 2)A-D题解
//写于rating值2033/2184
//最近放了个小假加上最近家里事情多,拖延到现在才补掉这场的题解
//今天回学校了

比赛链接:https://codeforces.ml/contest/1405
A题
简单思维水题

题意为对于一个长度为n的排列,我们定义一个特殊运算fingerprintf运算,为计算这个长度为n的排列中每一个相邻两个数字的和之后(显然这样的运算会得到n-1个数字),sort排序后的结果。
现在给定一个排列a,需要你构造出一个长度与a相同的排列b,使得两个排列在fingerprintf运算下结果相同。

我们注意到最后的结果是sort过的,也就是说数字之间的先后顺序是没有关系的,只要相同值的数字出现次数相同就可以了。
那我们直接把原排列反向输出一遍就可以了…不解释

#include<bits/stdc++.h>
#define ll long long
#define llINF 9223372036854775807
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;

int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        vector<int>num(n);
        for(int i=n-1;i>=0;i--) cin>>num[i];
        for(int i=0;i<n;i++)
        {
            if(i) cout<<' ';
            cout<<num[i];
        }
        cout<<endl;
    }
}

B题
简单思维,施行,贪心

题意为有一个长度为n的数列num[],数列中所有数字的和为0。
现在你的目标是进行若干次操作后,使得数列中的每一个数字都变为0。
每次操作你可以选择两个下标i和j,对num[i]进行-1操作并对num[j]进行+1操作,如果i<j则此次操作无消耗,如果i>j则此次操作需要消耗一枚硬币。
现在需要你求出最少需要消耗的硬币数量。

这里先用贪心去思考,我们从左侧开始向右侧看过去,出现的正数部分可以和当前位置右侧的负数进行无消耗操作,负数部分则只能和当前位置左侧的整数进行无消耗操作。
对于我们尽可能多使用无消耗操作的思路,那么出现位置越靠左的负数就越不利。因此我们可以直接采取贪心的策略,用一个temp记录当前位置左侧出现了总和多少的正数,并与负数进行无消耗的抵消操作。这个过程中如果出现temp<0则代表当前位置的负数已经没有左侧的正数可以与之进行无消耗抵消操作了,必然要与右侧的正数进行消耗硬币的抵消操作,此时直接累加temp的绝对值到最后答案次数上并将temp置零即可。

#include<bits/stdc++.h>
#define ll long long
#define llINF 9223372036854775807
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;

int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        vector<ll>num(n);
        for(auto &x:num) cin>>x;
        ll ans=0;
        ll temp=0;//temp记录我们当前位置左侧还有多少的正数可用
        for(int i=0;i<n;i++)
        {
            temp+=num[i];//下面的if运算保证了temp一定不是负数
            //temp与当前位置上的数字进行加法运算,如果num[i]是负数则正是题意中无消耗的操作
            if(temp<0)//如果出现了无法被无消耗操作除去的负数部分,则必然要与后面的正数进行有消耗的操作
                //此处累加temp的绝对值到答案上,并清零
            {
                ans-=temp;
                temp=0;
            }
        }
        if(temp<0) ans-=temp;
        cout<<ans<<endl;
    }
}

C题
简单结论,贪心,施行

题意为给定一个长度为n的字符串s,该字符串s只包含字符’0’,‘1’,’?‘三种。并给定一个偶数k,现在询问是否可以对字符串s中的字符’?'替换成0或者1后,满足字符串s中所有长度为k的连续子串,子串中0和1出现的个数相等,也就是均为k/2。

先推一个小结论,

#include<bits/stdc++.h>
#define ll long long
#define llINF 9223372036854775807
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
const ll maxn=3e5+7;

char firt[maxn];//firt[x]记录字符串s的下标i中,所有满足i%k=x的i,对应的字符是否相同,初始为'?'
//上述条件的所有字符相同,是字符串s的所有长度为k的子串中,0和1出现次数相同的充要条件
//这个条件是题目限定的所有长度为k子串中,0出现的次数均等于1出现的次数这个条件的弱化版本,为前置条件
int n,k;
string s;

int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        cin>>n>>k>>s;
        for(int i=0;i<k;i++) firt[i]='?';
        bool flag=1;
        for(int i=0;i<n;i++)
        {
            if(firt[i%k]=='?') firt[i%k]=s[i];//如果当前firt[i]仍然为'?"代表没有出现固定的0或者1
            else if(s[i]!='?'&&firt[i%k]!=s[i]) flag=0;
            //如果firt[i%k]已经是0或者1了,而s[i]不为'?'且不与firt[i%k]相同的话则出现冲突,直接flag置零
        }
        int sum0=0,sum1=0;
        for(int i=0;i<k;i++)//再检测,每段长度为k的子串中,目前已经确定必须有的0和1各自有多少个
        {
            if(firt[i]=='0') sum0++;
            if(firt[i]=='1') sum1++;
        }
        if(sum0>k/2||sum1>k/2) flag=0;//如果0或者1出现的个数超过了长度k的一半,同样是不满足条件的
        //此处与firt数组实现的条件一同,构成了题目要求的条件
        if(flag) cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
}

D题
树上博弈

题意为在一个有n个结点的数上,Alice和Bob一开始分别在a和b点。从Alice开始,他们交题开始移动,如果能做到某一刻,Alice和Bob处在同一个位置上,那么Alice胜利,否则Bob胜利。Alice每次移动最远可以移动到距离当前位置da的点,Bob每次移动最远可以移动到距离当前位置db的点,现在希望你判断出两者谁胜出。

博弈么,我们同样的从最基础的情况开始考虑。

首先Alice如何在下一次移动后能获得胜利呢,也就是两者所处位置的距离dis_ab<=da的时候,可以一次移动直接走到Bob的位置上获得胜利。

之后我们先不要考虑在一颗树上,考虑在一个有L个结点的直线上,如果2×\times×da>=L-1的话,Alice可以先选择走到这条直线中间的位置,Alice的下一步移动可以走到这条直线上的任意一个位置。此时不论Bob在哪里,Alice都能胜利。
接着考虑在树上,树的话同样可以看若干直线交错重叠构成的,树的直径x即为最长的那一根直线的长度,只需要2×\times×da>=x,Alice就能采取上述的策略保证自己完胜。

那么如果2×\times×da<x,Alice无法通过上述策略获得胜利呢。
同样的我们仍然是在一条直线上去考虑,对于Bob来说他在这条直线上如果一直保持在Alice的同一侧的话,Alice可以通过不断减少该侧的长度,不断逼近,最后获得胜利。因此Bob一定要有从Alice的左侧到右侧(或者右侧到左侧),且保证自己移动后不会被Alice一次追上。
Bob与Alice的距离不能小于等于da,由此我们可以得到当2×\times×da>=db的时候,Bob是无法在确保自己安全的情况下,从Alice的一侧移动到另一侧的,此时Alice必胜。

那么2×\times×da<db的时候呢,此时Bob可以安全地做到从一侧移动到另一侧,此时Bob可以确保自己不败。

自此推导完成所有情况。

#include<bits/stdc++.h>
#define ll long long
#define llINF 9223372036854775807
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
const ll maxn=1e5+7;

ll n,a,b,da,db,dis_ab;//dis_ab记录在树上a和b两点之间的距离
ll dis[maxn];//dis[i]记录每次dfs过程中,i点距离起点的距离

struct Edge
{
    ll to,next;
}edge[maxn<<1];

ll head[maxn],tot;

void init()
{
    for(ll i=1;i<=n;i++) head[i]=-1;
    tot=0;
}

void add(ll u,ll v)
{
    edge[tot].to=v;
    edge[tot].next=head[u];
    head[u]=tot++;
}
//前向星存图

void dfs(ll now,ll pre,ll deep)
{
    dis[now]=deep;
    for(ll i=head[now];i!=-1;i=edge[i].next)
    {
        ll to=edge[i].to;
        if(to!=pre)
        {
            dfs(to,now,deep+1);
        }
    }
}


int32_t main()
{
    IOS;
    int t;
    cin>>t;
    while(t--)
    {
        cin>>n>>a>>b>>da>>db;
        init();
        for(ll i=1;i<n;i++)
        {
            ll u,v;
            cin>>u>>v;
            add(u,v);
            add(v,u);
        }

        //两次dfs得到树的直径,第一次dfs的起点可以任意选择,第二次dfs的起点选择第一次dfs过程中距离最远的点
        //两次dfs得到的两个距离最远的点就是树的直径的两个端点,第二次dfs结束后dis[]数组中的最大值就是树的直径大小
        //由于第一次dfs的起点可以任意选择,因此我们选择a为起点,顺带计算出a和b两点间的距离
        dfs(a,-1,0);
        ll tar=1;
        for(ll i=2;i<=n;i++)
            if(dis[i]>dis[tar]) tar=i;

        dis_ab=dis[b];
        dfs(tar,-1,0);
        tar=1;
        for(ll i=2;i<=n;i++)
            if(dis[i]>dis[tar]) tar=i;

        if(dis_ab<=da||2*da>=dis[tar]||da*2>=db) cout<<"Alice"<<endl;
        else cout<<"Bob"<<endl;
    }
}
SAP UI5 应用开发教程的学习目录 - 循序渐进,由浅入深,适合不同水平的 SAP UI5 开发人员 笔者在业余时间设计了这份 SAP UI5 学习教程,把开发一个完整的 SAP UI5 应用的流程,拆分成若干个步骤,力求每个步骤里,把涉及到的知识点都涵盖到。建议零基础或者对 SAP UI5 知之甚少的 SAP UI5 初学者,按照顺序从第一个步骤开始循序渐进地学习,把这些代码下载到本地,配合教程的文字讲解,自己动手,以加深理解。 对于已经有一定基础的 SAPUI5 开发人员,可以通过本文的目录,跳过前面一部分比较基础的章节,直接挑选对自己工作项目有关,或者包含某些知识点自己尚未掌握的章节来有针对性地学习。 阅读详情

相关推荐

将AAL图谱对应到Yeo7大网络中【原理,代码分析】

本文介绍了将AAL2图谱映射到Yeo7大功能网络的方法。通过整合皮层(Yeo2011)、小脑(Buckner2011)和纹状体(Choi2012)三个区域的功能网络图谱,采用投票机制确定每个AAL区域的网络归属。具体步骤包括:1)统计每个AAL区域体素在各网络图谱中的分布;2)选择体素数量最多的网络作为该区域的最终标签。该方法实现了从解剖结构到功能网络的映射,可获得120个AAL区域对应的7大功能网络标签。

yes666666的博客 2204

Codeforces Round #668 (Div. 2)ABCD

比赛链接 A. Permutation Forgery 开始看错题了,导致傻逼题想了挺久的。。 #include <bits/stdc++.h> using namespace std; int a[205]; int main(){ ios::sync_with_stdio(false); int t;cin>>t; while(t--){ int n;cin>>n; for(int i=1;i<=n;i+

YeHosea的博客 1234

Win10系统蓝屏错误BAD SYSTEM CONFIG INFO的解决方案

BAD SYSTEM CONFIG INFO错误是Win10系统中较为常见的一种蓝屏错误,通常与系统配置文件损坏或丢失有关。本文介绍了三种有效的解决方法:使用系统修复高级选项修复、通过PE修复文件和重装新系统。用户可以根据实际情况选择合适的方法进行操作。同时,建议用户定期备份系统重要文件和数据,以防止类似问题的发生。在遇到问题时,保持冷静并耐心操作,通常可以顺利解决问题。

mmoo_python的博客 7719

Codeforces Round #668 (Div. 1)

正题 A. Balanced Bitstring 这样来考虑:当前区间k合法,那么要往右移一位依然合法,那么必须要保证加进来的位置=弹出去的位置,也就是说对于i<=n-k,要保证,我们判断一下输入的式子是否满足这样的性质就可以了,如果一个相等集合内只有问号,那么我们就待定它,最后看一下01个数是否都没有超过k/2即可. #include<bits/stdc++.h> using namespace std; const int N=300010; char...

Deep_Kevin的娱乐空间 998

LSF调度实战:如何用bsub命令实现多队列资源抢占与公平调度

本文深入探讨了LSF作业调度系统的高级实战技巧,重点解析如何通过配置`lsb.queues`文件与灵活运用`bsub -R`命令,构建一套兼顾效率与公平的多队列资源抢占与调度体系。文章详细介绍了队列优先级设计、公平共享机制、资源感知调度以及抢占策略的实施,帮助集群管理员解决高优先级任务等待、资源分配不均等常见问题,实现计算资源的精细化管理和高效利用。

vvv99的博客 218

Python实战:5分钟搞定抖音无水印视频下载(附完整代码)

本文系统介绍了抖音无水印视频下载的多种技术方案,重点解析了抖音视频的获取逻辑与去水印原理。文章提供了从零代码的浏览器插件到可编程的Python脚本的完整实现路径,并附带了详细的代码示例,帮助用户快速构建自己的抖音视频下载工具箱。

weixin_29089057的博客 846

Codeforces Round #520 (Div. 2)

 题目链接:http://codeforces.com/contest/1062 A 题 题意:给你一个升序序列,问你最多删除多少个,还可以让那个人复原回来。 思想:想复原只有1到一个数或者一个数到1000或者中间一段距离,对于前两者最长就是长度-1  后者就是长度-2. B题 题意:给你一个n问你可以通过*X或者开根号(能够正好开),求算出来的最小的数和最小的次数 思想:最小数的那个...

passer__的博客 251

新手别怕!用‘东北天’和‘右前上’坐标系,5分钟搞懂惯性导航姿态矩阵(含Python验证代码)

本文通过‘东北天(ENU)’和‘右前上(RFU)’坐标系,详细解析惯性导航中的姿态矩阵概念。包含Python代码验证,帮助新手快速理解坐标变换、欧拉角及旋转矩阵的构建与应用,特别强调有限转动不可交换性与无限转动次序无关的区别。

weixin_29062255的博客 332

codeforces round #668 (Div. 2)

传送门 前言 段位给我抖掉了() 我真是个菜鸡(哭) B. Array Cancellation 思路 正解 答案是最大后缀和。题解有证明,反正我是没想出来() 证明大意:观察发现,(1)免费的操作只会造成区间后缀和的增加。(2)最终结果要求全0,此时后缀和都为0。因此,花费至少是初始状态中的最大后缀和。 那么为什么花费是最大后缀和(设为M)的时候刚好可以满足条件呢? 此时可以这样操作: 花费M,将1号提升M,n号降低M。 此时,后缀和(除了第一个)全体下降M。 显然,此时所有后缀和<=0; 然后,从

Artist's Garden 229

Python爬虫案例:从39问医生网爬取口腔科的在线问答记录(单轮问答)

本次实验爬取39问医生网中口腔科分类下的所有在线单轮问答记录,每页32条,共100页,总数据量为3200条,最终结果以excel格式保存。

JieBao11的博客 1640

VS2019编译配置Easy3D

VS2019编译配置Easy3D

dayuhaitang1的博客 2596

[Codeforces Round #668 (Div. 2)]1405

文章目录A - Permutation ForgeryB - Array CancellationC - Balanced Bitstring [思维]D - Tree Tag [博弈][dfs][树的直径] ★★E - Fixed Point Removal [线段树] ★★★ 竞赛首页 Codeforces Round #665 (Div. 2) A - Permutation Forgery 题意 找到一个另一个序列不同于给出的序列,使的该序列得到的所有 a[i−1]+a[i](i>1).

QAQ! 的博客 920

【CANdelaStudio编辑CDD】-1.2-给$10服务SessionControl创建一个新Session会话并修改Session state machine会话状态机(UDS诊断)

前一篇:【UDS诊断描述文件CDD】-1.1-ISO_14229中$10服务理论部分https://blog.csdn.net/qfmzhu/article/details/120375515案例背景: 在CDD中如何给$10服务创建一个新的Session会话; 在CDD中如何给$10服务修改Session state machine会话状态机。 目录 1 查看$10服务中已有的Session会话​ 2 查看$10服务中已有的Session state machine会话状态机 3 在$10...

「汽车电子助手」的博客 6074

Codeforces Round #668(Div. 2)(A~E题解)

Link! A 倒过来输出。 B 对于每一个正数,计算出前面所有负数的和,如果这个正数不够用,答案加上正数减和的值。感觉不是很好解释,看代码吧。 #include<bits/stdc++.h> #define int long long #define N 100015 #define rep(i,a,n) for (int i=a;i<=n;i++) #define per(i,a,n) for (int i=n;i>=a;i--) #define inf 0x3f3f3f3f #

qq_44062973的博客 336

NTscan扫描工具

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

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Codeforces Round #668 (Div. 2)A~D总结

比赛传送门 Codeforces Round #668 Div. 2A题B题C题D题 A题 ☠速度保持(2min出) 题意 长度为n的排列是一个数组,其中包含n个从1到n的任意整数的任意整数。 F(p)= sort([p1 + p2,p2 + p3,…,pn-1 + pn])。 例如,如果n = 4且p = [1,4,2,3], 则指纹由F(p)= sort([1 + 4,4 + 2,2 + 3])= sort([5,6,5])= [5,5,6]。 您将得到长度为n的排列p。 您的任务是找到具有相同指纹

rainbowsea_1的博客 299

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Codeforces Round #668 (Div. 2)A-C

Codeforces 问题分析: AC代码:

MaxVen 143

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

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

Codeforces Round #668 A~D题解(div2)

A.Permutation Forgery 题目传送门: Permutation Forgery 简单题,反向输出即可,就直接放代码 AC code #include<bits/stdc++.h> using namespace std; int main() { int t,a[105]; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); for

稚始稚终的博客 1756

Codeforces Round #628 (Div. 2) (A - D)

Codeforces Round #628 (Div. 2) A 假数论。 拆成x-1和1即可。 B 没有比在每次copy中找一个点来构成大序列的LIS更优的做法了,那么set.size()即可。 C 卡了有点久…只要将度数最高的点的儿子们置为0、1、...、du[v] - 1即可满足最大的MEX值最小。这是因为无论怎么置数,在01之间一定有一条路径,那么MEX至少为2;而我们的这种构造办法满足...

rqdmap的博客 244

Codeforces Round #668 (Div. 2) D - Tree Tag(使用fa代替vis[]的dfs求树的直径+dfs求ab的距离)

Codeforces Round #668 (Div. 2) D - Tree Tag(使用fa代替vis[]的dfs求树的直径+dfs求ab的距离) 题目 http://codeforces.com/contest/1405/problem/D 题意 a和b都在树上,a要追到b的话a胜利,否则b胜利。 a先手,并且a最多走da步,b最多走db步。 题解 a胜利有两种情况,第一种情况是a第一步直接就可以碰到b,a直接胜利。 第二种情况是db<=2da,因为a可以把b逼到死胡同(树最远的子节点)此时b

zhz的博客 227

Codeforces Round #668 (Div. 2)

Codeforces Round #668 (Div. 2) A. Permutation Forgery #include <bits/stdc++.h> #define int ll typedef long long ll; const int INF = 0x3f3f3f3f3f; const int mod = 1e9 + 7; const int maxn = 1e6 + 10; const int N=205; using namespace std; void solve(

扣脚老骚 283

Codeforces Round #668(Div.2) A,B,C,D

文章目录A. Permutation ForgeryB. Array CancellationC. Balanced BitstringD. Tree Tag A. Permutation Forgery 因为只要排完序一样,所以逆序输出即可。 #include <iostream> #include <stdio.h> using namespace std; int T,n; int a[105]; int main() { scanf("%d",&T);

hhhcbw的博客,欢迎各位来访 273

Codeforces Round #668 (Div. 1)题解

题目链接 代码链接 A. Balanced Bitstring 题目大意: 给定一个长度为nnn的含有???的01串。现要往???处填入000或111,要求填完后的01串的每个长度为kkk的子串中,000和111的个数相同。 数据范围:2≤k≤n≤3⋅1052 \leq k \leq n \leq 3 \cdot 10^52≤k≤n≤3⋅105,kkk是偶数 题解: 因为对于任意的子串,都要求0的个数和1的个数相同。又因为子串长度固定,所以一定有s[i+k]=s[i]s[i+k]=s[i]s[i+k]=s[

VioletSaber的博客 364

Codeforces Round #668 (Div. 1) 总结+全部题解。

目录标题赛况ABCDE 赛况 00:00:00 Participant has been assigned to the room 12 00:04:08 A Accepted [main tests] 00:25:40 B Wrong answer on pretest 2 [pretests] 00:26:41 B Wrong answer on pretest 2 [pretests] 00:46:24 B Accepted [main tests] 01:20:05 C Ac

qq_42925924的博客 455

【Codeforces Round #668 (Div. 2) D】Tree Tag

题目链接 点我呀 翻译 给你一棵树,一个人(\(Alice\))在 \(a\) 处,一个人(\(Bob\))在 \(b\) 处,其中 \(a\) 每次可以移动到距离(经过的边的个数)为 \(da\) 以内的任意一个点上,\(b\) 每次可以移动到距离为 \(db\) 以内的任意一个点上。 在 \(a\) 上的人 \(Alice\) 先移动,问 \(A\) 能否在有限次的移动过后和 \(B...

AWCXV 241

Codeforces Round #668 (Div. 1) Solution

..

curry的博客 1868
上一篇: Codeforces Round #669 (Div. 2)A-D题解
下一篇: Codeforces Round #670 (Div. 2)A-D题解
StandNotAlone
博客等级 码龄7年 338粉丝 47原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值