LeetCode笔记:Weekly Contest 205 比赛记录

Hypermesh静力学仿真分析与模态分析-02 hypermesh中对较复杂实体进行静力学分析和模态分析,包含材料属性添加,载荷设置等等 阅读详情

0. 赛后总结

唉,图真的是我的阿喀琉斯之踵,感觉自己做的其实还可以了,结果一看结果连1500都没有进,差点跑出2000名,即使是国内也在500名之后,连10%都没进,然后看看排名第一的awice大佬,居然只花了7分钟就搞定了全部4道题目,真的是,一言难尽。。。

感觉还是要好好的分析一下了,这次的题目又是两次不该有的错误,一次是自己蠢,一次是算法思路没想清楚,耗掉了大量的时间,也怨不得别人,但是看大佬们几分钟就搞定的感觉自己是不是哪里理解的不对,应该是有什么更好更直观的算法自己没有想到吧。

然后就是第四题,做了50多分钟,给出了一个解法,但是测试的时候发现82个测试样例中通过了73个。。。这简直了,估计就是算法本身可能有问题,针对一些特殊情况没有考虑到。

然后看了一下大佬的解法,发现他们使用了DSU结构(Disjoint Set Union),即并查集结构,这就完全是我的知识盲区了,得花点时间好好补一下课了。

1. 题目一

给出题目一的试题链接如下:

1. 解题思路

这一题本身不难,无非就是对每一个?进行一下替换就行了,可惜我在比赛的时候想复杂了,想着可不可能会出现什么因为之前的匹配导致后续无法正常插入的情况,事实上,候选集有26个字符,而前后最多只会占用两个字符,所以无论如何都不会出现因为之前的匹配导致后续无法进行替换的情况。

因此,只需要没看到一个?进行一下替换就行了,亏我竟然因为这个题搞了一次错误提交,简直了,桑心。。。≧ ﹏ ≦

2. 代码实现

下面,我们给出python的代码实现如下:

class Solution:
    def modifyString(self, s: str) -> str:
        def get_valid(pre, nxt):
            for c in "abcdefghijklmnopqrstuvwxyz":
                if c != pre and c != nxt:
                    return c
                
        ans = []
        n = len(s)
        for i, c in enumerate(s):
            if c != "?":
                ans.append(c)
            else:
                pre = "" if ans == [] else ans[-1]
                nxt = '' if i == n-1 else s[i+1]
                ans.append(get_valid(pre, nxt))
        return "".join(ans)

提交代码评测得到:耗时32ms,占用内存13.9MB。

当前的最优解答耗时28ms,但是看了一下代码思路是完全一致的,因此这里就不再赘述了。

2. 题目二

给出题目二的试题链接如下:

1. 解题思路

这一题思路还是比较清晰的,无非就是对nums1以及nums2中的每一个元素到另一个数组中寻找有多少组元素使其乘机恰为其平方。

剩下的就是如何更为高效地统计一个数组中存在多少数据组合使之的乘积恰为一个数。

我们使用首尾逼近法的方式进行计算,得到整体的算法复杂度在 O ( N × M ) O(N \times M) O(N×M)量级,其中, N N N和 M M M分别为两数组的长度。

2. 代码实现

给出代码实现如下:

class Solution:
    def numTriplets(self, nums1: List[int], nums2: List[int]) -> int:
        nums1 = sorted(nums1)
        nums2 = sorted(nums2)
        
        @lru_cache(None)
        def count_valid(tgt, arr):
            arr = nums1 if arr == 1 else nums2
            n = len(arr)
            st = 0
            ed = n-1
            ans = 0
            while st < ed:
                if arr[st] * arr[ed] > tgt:
                    ed -= 1
                elif arr[st] * arr[ed] < tgt:
                    st += 1
                else:
                    if arr[st] == arr[ed]:
                        ans += (ed-st) * (ed-st+1) // 2
                        break
                    i = st
                    while arr[i] == arr[st]:
                        i += 1
                    j = ed
                    while arr[j] == arr[ed]:
                        j -= 1
                    ans += (i-st) * (ed-j)
                    st = i
                    ed = j
            return ans
        
        ans = 0
        for n in nums1:
            ans += count_valid(n**2, 2)
        for n in nums2:
            ans += count_valid(n**2, 1)
        return ans

提交代码评测得到:耗时172ms,占用内存14MB。为当前的最优解法。

3. 题目三

给出题目三的试题链接如下:

1. 解题思路

这题就属于典型地在做题的时候想岔了,觉得需要遍历每个元素保留和删除的情况,这直接导致了我的第一次提交失败。

后来仔细一想,因为是确保相邻字符不相同,因此,事实上我们只需要将所有的相同的连续字符删至一个元素即可。如此一来,这道题事实上就十分的简单了。

2. 代码实现

我们直接给出这一题的python代码实现如下:

class Solution:
    def minCost(self, s: str, cost: List[int]) -> int:
        ans = sum(cost)
        n = len(cost)
        
        last = ''
        ans = 0
        idx = 0
        while idx < n:
            ch = s[idx]
            co = cost[idx]
            if ch != last:
                last = ch
                idx += 1
            else:
                st = idx-1
                while idx < n and s[idx] == last:
                    idx += 1
                ans += sum(cost[st:idx]) - max(cost[st:idx])
        return ans

提交代码评测得到:耗时1184ms,占用内存24.2MB。

当前的最有代码实现耗时908ms,但是看了一下算法思路,和我们是完全一样的,因此,这里就不再赘述了。

4. 题目四

给出题目四的试题链接如下:

这道题缝缝补补修修改改搞了一整晚,把之前说的通过的73个测试样例成功提升到了80个,逻辑上的bug应该是都没有了,然后就只剩下超时问题了。。。超时问题。。。问题。。。题。。。

WTF!!!

算了,基本是放弃抢救了,还是和之前一样,这里第一小节先说一下我的思路,然后下一个小节里面扔上我的代码,最后第三个小节再重点看一下大佬们的解法。

因此,如果对前面的糟粕解法没啥兴趣的话,建议直接看第三小节吧。

1. 解题思路

我自己的解题思路是比较暴力的,显然在保留的优先级上type3的边高于前两者,因此,我们首先考虑type3的边集合,在考虑type1以及type2的边集合。

对于每一个边集合的考察,我们只根据一个思路:

  • 如果某一条边的加入可以联通两个本不连通的集合,那么就保留这条边,反之去除这条边。

2. 代码实现

给出python代码实现如下:

from copy import deepcopy

class Solution:
    def maxNumEdgesToRemove(self, n: int, edges: List[List[int]]) -> int:
        edge_list = [set(), set(), set()]
        for edge in edges:
            edge_list[edge[0]-1].add((edge[1], edge[2]))
                
        def clean_edge(edge_list, connected_list = []):
            edge_set = set()
            tmp = {}
            for x, y in edge_list:
                tmp[x] = tmp.get(x, []) + [(x, y)]
                tmp[y] = tmp.get(y, []) + [(x, y)]
            stack = []
            new_connected_list = []
            for node in tmp.keys():
                if any(node in c for c in new_connected_list):
                    continue
                stack = [node]
                connected = {node}
                while stack != []:
                    p = stack.pop(0)
                    for edge in tmp.get(p, []):
                        if edge[0] in connected and edge[1] in connected:
                            continue
                        if any(edge[0] in c and edge[1] in c for c in connected_list):
                            for c in connected_list:
                                if edge[0] in c:
                                    for nd in c:
                                        if nd not in connected:
                                            connected.add(nd)
                                            stack.append(nd)
                            continue
                        if edge[0] not in connected:
                            edge_set.add(edge)
                            connected.add(edge[0])
                            stack.append(edge[0])
                        if edge[1] not in connected:
                            edge_set.add(edge)
                            connected.add(edge[1])
                            stack.append(edge[1])
                        for c in connected_list:
                            if edge[0] in c:
                                for nd in c:
                                    if nd not in connected:
                                        connected.add(nd)
                                        stack.append(nd)
                            if edge[1] in c:
                                for nd in c:
                                    if nd not in connected:
                                        connected.add(nd)
                                        stack.append(nd)
                new_connected_list.append(connected)
                
            return edge_set, new_connected_list
                  
        edge_set, connected_list = clean_edge(edge_list[2], [])
        alice_edge, alice_visited= clean_edge(edge_list[1], connected_list)
        bob_edge, bob_visited= clean_edge(edge_list[0], connected_list)
        
        if len(alice_visited) == 1 and len(bob_visited) == 1 and len(alice_visited[0]) == n and len(bob_visited[0]) == n:
            return len(edges) - len(edge_set) - len(alice_edge) - len(bob_edge)
        elif len(connected_list) == 1 and len(connected_list[0]) == n:
            return len(edges) - len(edge_set)
        else:
            return -1

可以看到,代码很长,很丑,且最终提交超时,也许是那里的实现细节上不够完美,也许代码思路上本身就不是最优的思路,但是反正我是实在不想再去折腾这坨代码了。。。>﹏<

3. 大佬们的解法

看了一下大佬们的解法,发现大佬们普遍使用的是并查集结构(DSU,Disjoint Set Union),可惜这部分就完全处于我的知识盲区了,大约是因为非科班出身的缘故,当年上数据结构的课就完全没有提到过这个结构,看到这个东西真的是惊呆了。。。

因此,这里就暂时先复制awice大佬的解法了,有兴趣的读者可以自行研究一下,我就先不细看了,先去仔细研究一下DSU结构,后面争取搞一篇小文章专门介绍一下这个结构,在那里再尝试搞一下这道题目。

OK,废话不多说了,下面就是awice大佬的解法:

class DSU:
    def __init__(self, N):
        self.par = list(range(N))
        self.sz = [1] * N

    def find(self, x):
        if self.par[x] != x:
            self.par[x] = self.find(self.par[x])
        return self.par[x]

    def union(self, x, y):
        xr, yr = self.find(x), self.find(y)
        if xr == yr:
            return False
        if self.sz[xr] < self.sz[yr]:
            xr, yr = yr, xr
        self.par[yr] = xr
        self.sz[xr] += self.sz[yr]
        self.sz[yr] = self.sz[xr]
        return True

    def size(self, x):
        return self.sz[self.find(x)]

class Solution(object):
    def maxNumEdgesToRemove(self, N, edges):
        for row in edges:
            # row[0] -= 1
            row[1] -= 1
            row[2] -= 1
        alice = []
        bob = []
        both = []
        
        for t, u, v in edges:
            if t == 1:
                alice.append([u,v])
            elif t==2:
                bob.append([u,v])
            else:
                both.append([u,v])
        dsu1 = DSU(N)
        dsu2 = DSU(N)
        ans = 0
        for u,v  in both:
            dsu2.union(u,v)
            if not dsu1.union(u, v):
                ans += 1
        for u,v  in alice:
            if not dsu1.union(u,v): ans += 1
        for u,v in bob:
            if not dsu2.union(u,v): ans += 1
        
        if dsu1.size(0) != N:
            return -1
        if dsu2.size(0) != N:
            return -1
        return ans

提交后评测得到:耗时2656ms,占用内存54MB。均属于当前第一梯队。

开源低场MRI系统构建:从原理到三天实现 磁共振成像(MRI)作为现代医学影像的核心技术,其高场强系统存在成本和技术门槛问题。低场MRI通过开源硬件和模块化设计实现技术民主化,采用永磁体替代超导磁体可大幅降低系统复杂度。本文以H型永磁体设计为例,结合MaRCoS开源控制库和PyPulseq脉冲序列工具,展示了如何快速构建教育级MRI系统。关键技术包括遗传算法优化的匀场方案、CNC加工的梯度线圈,以及基于Red Pitaya的SDR控制架构。这种轻量化方案特别适合医学物理教学和脉冲序列开发验证,为MRI技术在资源有限地区的普及提供了新思路。 阅读详情

相关推荐

AI嵌入式系统测试:从确定性验证到概率性评估的体系构建

软件测试是保障系统质量的关键环节,其核心在于验证功能是否符合预期。传统嵌入式测试聚焦于确定性逻辑,通过代码覆盖、边界值分析等方法确保时序、内存等指标的精确性。随着人工智能技术的普及,深度学习模型以其概率性输出和复杂非线性映射的特性,为嵌入式系统带来了新的能力,也彻底改变了测试的范式。AI模型的‘黑盒’特性使得测试目标从‘绝对正确’转向‘置信度满足’,并催生了准确率、F1分数等新指标。在工程实践中,这种融合要求测试体系必须扩展维度,将数据质量、模型量化损失、资源约束下的精度与性能权衡纳入核心考量。尤其在嵌入式

weixin_26766559的博客 382

1576. 替换所有的问号

class Solution: def modifyString(self, s: str) -> str: while s.find('?')!=-1: t='a' tmp=ord(t) if len(s)==1: return 'a' if s.find('?')==0: while t==s[s.find('?'.

qq_34342155的博客 223

分位数映射数据后处理-Quantile Mapping后处理 (R语言)

统计后处理器基本上是统计模型,将观察到的关注变量与从气象或水文模型的直接模型输出(DMO)导出的适当预测变量相关联。统计后处理的重要性早已在气象预报中得到认可。早期的工作包括完善的预测(perfect prognosis),模型输出统计(MOS)和模拟方法(analog method)等模型。 近年来,已经提出了许多其他后处理方法,包括秩直方图校准(rank histogram calibrati...

水滴石穿,绳锯木断 1万+

LeetCode笔记:Biweekly Contest 70

LeetCode笔记:Biweekly Contest 70 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 1. 题目一 给出题目一的试题链接如下: 2144. Minimum Cost of Buying Candies With Discount 1. 解题思路 这一题直接使用贪婪算法即可实现。 首先我们将价格进行排序,然后价..

codename_cys的博客 5535

英伟达Orin芯片:自动驾驶的标杆产品

英伟达Orin芯片是面向自动驾驶和边缘AI的高性能SoC,采用7nm工艺,单芯片算力达254TOPS(INT8),功耗45-55W。其硬件架构包含12核ARM CPU、Ampere GPU、专用DLA和PVA加速器,支持64GB LPDDR5内存,符合车规级ASIL-D安全标准。软件生态涵盖DRIVE OS、CUDA、TensorRT等工具链,提供全栈解决方案。Orin已被理想、蔚来等车企采用,主要竞争对手包括高通Snapdragon Ride和地平线征程系列。面试需重点掌握算力指标、异构计算架构、Tens

学习代码 1823

SAP IDOC实战:如何用EDI实现跨公司采购订单自动生成销售订单(附完整配置步骤)

本文详细解析了如何利用SAP IDOC与EDI技术,实现跨公司采购订单自动生成销售订单的完整流程。通过实战案例,从业务蓝图设计、输出条件配置、伙伴参数设定到IDOC消息类型处理,提供了清晰的配置步骤与故障排查指南,帮助企业打通内部业务流,构建高效的自动化闭环。

weixin_29215815的博客 728

LeetCode笔记:Weekly Contest 219 比赛记录

LeetCode笔记:Weekly Contest 219 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 这一次的比赛怎么说呢,感觉有点不尴不尬的。 要说吧,4道题也都做出来了,耗时老实说也没有特别长,不算错误惩罚的话其实也就56分钟,不到1个小时,整体虽然没有挤进国内前100,好歹也有前4%(116/..

codename_cys的博客 4819

基于Simulink的固态变压器(SST)多级协同控制​

本文介绍了基于Simulink的固态变压器(SST)多级协同控制方法。SST作为智能电网关键设备,其三级架构(AC-DC整流、DC-DC隔离、DC-AC逆变)存在级间耦合问题。文章提出纵向解耦与横向联动相结合的协同控制策略,详细推导了各级控制算法,并通过Simulink实现了10kV/400V级联型SST系统建模。仿真结果显示,在±20%电网波动和0-100%负载跳变下,系统能保持直流母线电压波动<2%。文章还提供了工程部署建议和代码生成方法,为SST的研发提供了实用指导。

amy_mhd的博客 301

Leetcode 3629. Minimum Jumps to Reach End via Prime Teleportation

Leetcode 3629. Minimum Jumps to Reach End via Prime Teleportation

codename_cys的博客 3868

beegfs读取文件完整流程分析

读取小于512KB文件数据,小于1s 读取15MB文件数据,花费7秒。

wfzy的博客 835

借助ChatGPT完成课题申报书中框架思路写作指南

通过这篇文章的学习,我们可以让ChatGPT先为用户匹配研究理论、研究方法、研究思路、研究内容等,为申请人提供一些参考,能够帮助对拟申报课题有一个初步的认识。当申请人找到了合适的理论、方法和问题后,再借助精细化提示词模型提问,那ChatGPT回答的启发性肯定会有质的提升,更具有使用价值。

智能AI让学术科研更容易 2468

LeetCode笔记:Weekly Contest 221 比赛记录

LeetCode笔记:Weekly Contest 221 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 昨天才遭遇滑铁卢,本以为成绩已经够差了,结果转头今天就被打脸,成绩比昨天还差,国内468/3397,全球1274/8838,真的是,不想说什么了。 不过这次真心是我自找的,第三题明明是一道简单的题目..

codename_cys的博客 3303

OpenCV实现文档扫描OCR识别(基于Python + OpenCV,含完整代码)

在当今数字化时代,文档处理的自动化需求日益增长。文档扫描OCR(Optical Character Recognition,光学字符识别)技术成为了将纸质文档转换为可编辑电子文本的关键手段。通过Python与OpenCV库的结合,我们能够实现高效、准确的文档扫描OCR识别。这一技术在办公自动化、数字图书馆、档案管理等众多领域都有着广泛的应用。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2031

LeetCode笔记:Weekly Contest 229 比赛记录

LeetCode笔记:Weekly Contest 229 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 这周的比赛整体都给跪了,两场比赛都是不顺的要死,昨天的比赛还能归结到看错题目,这次的比赛就真的是没得洗了,第三题超时之后就没有更好的思路了,第四题压根没有一个可行的思路,想到的解法实现出来之后发现都..

codename_cys的博客 2468

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

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

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LeetCode笔记:Weekly Contest 206 比赛记录

LeetCode笔记:Weekly Contest 206 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 最近不知是换到中文leetcode平台之后水土不服还是怎么样,感觉真的是到了瓶颈期了,最近几次打比赛真的是一次不如一次,做起来异常不顺手。 看了一下头部几位大佬们的做题耗时,基本都还是在10分钟左右..

codename_cys的博客 2016

IEM模型,地表粗糙度模拟

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

Leetcode 3600. Maximize Spanning Tree Stability with Upgrades

3600. Maximize Spanning Tree Stability with Upgrades

codename_cys的博客 1751

假人有限元模型

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

LeetCode笔记:Biweekly Contest 42 比赛记录

LeetCode笔记:Biweekly Contest 42 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 唉,前两周刚和同学吹牛说现在leetcode的比赛基本都能在前10%,发挥好的话能争国内前100,然后这周转头就被打脸,打得啪啪响,国内320/1578,世界1023/6631,连前20%都没卡进..

codename_cys的博客 1720

Leetcode 3448. Count Substrings Divisible By Last Digit

Leetcode 3448. Count Substrings Divisible By Last Digit

codename_cys的博客 1712

Leetcode 3537. Fill a Special Grid

Leetcode 3537. Fill a Special Grid

codename_cys的博客 1627

LeetCode笔记:Weekly Contest 220 比赛记录

LeetCode笔记:Weekly Contest 220 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 这次的比赛结果略惨,只做出3题,然后国内才只有229/3690,世界则是667/9606,都是只有前7%的水平。 但是这次的题目应该算是比较简单的,看了一下,第一名的大佬只花了不到10分钟就搞定了,..

codename_cys的博客 1581

Leetcode 3389. Minimum Operations to Make Character Frequencies Equal

Leetcode 3389. Minimum Operations to Make Character Frequencies Equal

codename_cys的博客 1552

Leetcode 3609. Minimum Moves to Reach Target in Grid

Leetcode 3609. Minimum Moves to Reach Target in Grid

codename_cys的博客 1528

LeetCode笔记:Weekly Contest 203 比赛记录

LeetCode笔记:Weekly Contest 203 0. 赛后总结 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 0. 赛后总结 昨天刚刚历史性地第一次打进了前500,今天转头就历史性地打进了前200,实在是有点开心。 不过说到底还是因为题目比较简单的关系,看了一下,前头的大佬们都是10分钟左右就做完的,实在不认为这次的题目比..

codename_cys的博客 1523

LeetCode笔记:Weekly Contest 279

LeetCode笔记:Weekly Contest 279 1. 题目一 1. 解题思路 2. 代码实现 2. 题目二 1. 解题思路 2. 代码实现 3. 题目三 1. 解题思路 2. 代码实现 4. 题目四 1. 解题思路 2. 代码实现 1. 题目一 给出题目一的试题链接如下: 2164. Sort Even and Odd Indices Independently 1. 解题思路 这题还是比较直接的,就是先按照奇偶性取出元素,然后分别进行排序之后进行重组即..

codename_cys的博客 1514

LeetCode 每日一题 2026/11/2-2026/11/8

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步

AlphaTao的博客 179

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)

LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等) 题目描述: 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: - s = s1 + s2 + ... + sn - t = t1 + t2 + ... + tm - |n - m| <= 1 - 交错 是 s1 + t

huayimenghan的博客 210
上一篇: LeetCode笔记:Biweekly Contest 34 比赛记录
下一篇: Python笔记:itertools库简介
Espresso Macchiato
博客等级 码龄7年 2453粉丝 818原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值