AtCoder Beginner Contest 250 C~E 题解

AtCoder Beginner Contest 250 (ABC250) 题解 (A-Ex) 阅读详情

C - Adjacent Swaps

题目大意

N N N个球从左到右排成一列。开始时,从左往右的第 i i i个球上写着数字 i i i。
请执行 Q Q Q个操作,第 i i i个操作如下:

  • 令 j =   N j=~N j= N个球中写着数字 x i x_i xi​的球的位置
  • 如果 j = N j=N j=N,将其与第 j − 1 j-1 j−1个球交换;否则,与第 j + 1 j+1 j+1个球交换。

求所有操作后的球上分别写的数字。详见输出格式。

2 ≤ N ≤ 2 × 1 0 5 2\le N\le 2\times 10^5 2≤N≤2×105
1 ≤ Q ≤ 2 × 1 0 5 1\le Q\le 2\times 10^5 1≤Q≤2×105
1 ≤ x i ≤ N 1\le x_i\le N 1≤xi​≤N

输入格式

N   Q N~Q N Q
x 1 x_1 x1​
⋮ \vdots ⋮
x Q x_Q xQ​

输出格式

令 a i = N a_i=N ai​=N个球中从左往右的第 i i i个在所有操作结束后写的数,则按如下格式输出:
a 1   a 2   …   a n a_1~a_2~\dots~a_n a1​ a2​ … an​
即将 a 1 , … , a n a_1,\dots,a_n a1​,…,an​按顺序输出到一行,用空格隔开。

样例

略,请自行前往AtCoder查看。

分析

根据数据范围可得,本题只能使用时间复杂度不超过 O ( N + Q log ⁡ n ) \mathcal O(N+Q\log n) O(N+Qlogn)的算法。
因此,暴力模拟,即查找每个球对应的位置 j j j( O ( N Q ) \mathcal O(NQ) O(NQ))肯定是行不通的。

但是很容易想到可以设置索引数组 p p p,使当 a i = x a_i=x ai​=x时, p x = i p_x=i px​=i。
这样,对于每一个操作,只需 O ( 1 ) \mathcal O(1) O(1)的时间复杂度就能找到 x i x_i xi​出现的位置。
交换时注意同时交换一下 a a a和 p p p中的元素即可。总时间复杂度 O ( N + Q ) \mathcal O(N+Q) O(N+Q)。

代码

#include <cstdio>
#define maxn 200005
using namespace std;

inline void swap(int& x, int& y) { x ^= y ^= x ^= y; }

int pos[maxn], ans[maxn];

int main()
{
	int n, q;
	scanf("%d%d", &n, &q);
	for(int i=1; i<=n; i++)
		ans[i] = pos[i] = i;
	while(q--)
	{
		int x;
		scanf("%d", &x);
		int p1 = pos[x];
		int p2 = p1 == n? p1 - 1: p1 + 1;
		swap(pos[x], pos[ans[p2]]);
		swap(ans[p1], ans[p2]);
	}
	for(int i=1; i<=n; i++)
		printf("%d ", ans[i]);
	return 0;
}

D - 250-like Number

题目大意

当一个正整数 k k k满足以下条件时,我们称其为“与 250 250 250相似的”:

  • k = p × q 3 k=p\times q^3 k=p×q3,其中 p , q p,q p,q均为质数,且 p < q p<q p<q。

求不超过 N N N的“与 250 250 250相似的” k k k的个数。

1 ≤ N ≤ 1 0 18 1\le N\le 10^{18} 1≤N≤1018

输入格式

N N N

输出格式

将答案输出为一个整数。

样例

N N N输出
250 250 250 2 2 2
1 1 1 0 0 0
123456789012345 123456789012345 123456789012345 226863 226863 226863

分析

看到数据范围后我们发现 N N N太大,不能盲目下手。
由 k = p × q 3 , k ≤ N k=p\times q^3,k\le N k=p×q3,k≤N可知, p × q 3 ≤ N ≤ 1 0 18 p\times q^3\le N\le 10^{18} p×q3≤N≤1018。
又因为 p , q p,q p,q是质数,且 p < q p<q p<q可得, 2 ≤ p < q 2\le p<q 2≤p<q。
因此,当 p p p最小时 q q q最大,所以 q ≤ N = 1 0 18 p = 2 3 ≈ 794000 q\le \sqrt[3]{\frac {N=10^{18}} {p=2}}\approx794000 q≤3p=2N=1018​ ​≈794000。

这时,可以想到筛出质数表,并对于每个质数 p p p计算最大的 q q q,此时质数 p < x ≤ q p<x\le q p<x≤q都能作为 q q q,因此将答案加上 p < x ≤ q p<x\le q p<x≤q的质数数量即可。当 p ≥ q p\ge q p≥q时,退出循环,输出结果即可。

计算 q q q时可以使用二分查找或者双指针算法快速处理。
总时间复杂度大约在 O ( n 7 22 ) \mathcal O(n^{\frac 7 {22}}) O(n227​)。

代码

本代码使用双指针实现。

#include <cstdio>
#include <cmath>
#include <vector>
#define maxp 794000
using namespace std;

using LL = long long;

bool bad[maxp];
vector<int> primes;

inline LL pow3(LL x) { return x * x * x; }

int main()
{
	bad[0] = bad[1] = true;
	for(int i=2; i<maxp; i++)
		if(!bad[i])
		{
			primes.push_back(i);
			for(int j=i<<1; j<maxp; j+=i)
				bad[j] = true;
		}
	LL n;
	scanf("%lld", &n);
	LL ans = 0LL;
	for(int i=0, j=primes.size()-1; i<j; i++)
	{
		while(j >= 0 && primes[i] * pow3(primes[j]) > n) j --;
		if(i >= j) break;
		ans += j - i;
	}
	printf("%lld\n", ans);
	return 0;
}

E - Prefix Equality

题目大意

给定长度为 N N N的正整数序列 A = ( A 1 , … , A N ) A=(A_1,\dots,A_N) A=(A1​,…,AN​)和 B = ( B 1 , … , B N ) B=(B_1,\dots,B_N) B=(B1​,…,BN​)。
对于每个 1 ≤ i ≤ Q 1\le i\le Q 1≤i≤Q,给定两个正整数 x i , y i x_i,y_i xi​,yi​,回答如下格式的查询:

  • 判断集合 { A 1 , … , A x i } \{A_1,\dots,A_{x_i}\} {A1​,…,Axi​​}和 { B 1 , … , B y i } \{B_1,\dots,B_{y_i}\} {B1​,…,Byi​​}是否相等。

集合可以说成是序列排序并去重的结果,如序列 ( 9 , 3 , 5 , 3 , 4 ) (9,3,5,3,4) (9,3,5,3,4)对应的集合是 { 3 , 4 , 5 , 9 } \{3,4,5,9\} {3,4,5,9}。

1 ≤ N , Q ≤ 2 × 1 0 5 1\le N,Q\le 2\times 10^5 1≤N,Q≤2×105
1 ≤ A i ≤ B i ≤ 1 0 9 1\le A_i\le B_i\le 10^9 1≤Ai​≤Bi​≤109
1 ≤ x i , y i ≤ N 1\le x_i,y_i\le N 1≤xi​,yi​≤N

输入格式

N N N
A 1   …   A N A_1~\dots~A_N A1​ … AN​
B 1   …   B N B_1~\dots~B_N B1​ … BN​
Q Q Q
x 1   y 1 x_1~y_1 x1​ y1​
⋮ \vdots ⋮
x Q   y Q x_Q~y_Q xQ​ yQ​

样例

样例输入

5
1 2 3 4 5
1 2 2 4 3
7
1 1
2 2
2 3
3 3
4 4
4 5
5 5

样例输出

Yes
Yes
Yes
No
No
Yes
No

分析

本题做法很多。这里我们介绍使用哈希(Hash)的算法。
现在我们有一个很简单但明显错误的思路:
将 A A A和 B B B做一个前缀和,只计算不重复的元素,即
P A ( i ) = ∑ { A 1 , … , A i } P B ( i ) = ∑ { B 1 , … , B i } P_A(i)=\sum\{A_1,\dots,A_i\}\\ P_B(i)=\sum\{B_1,\dots,B_i\} PA​(i)=∑{A1​,…,Ai​}PB​(i)=∑{B1​,…,Bi​}
此时,只需判断 P A ( x i ) P_A(x_i) PA​(xi​)和 P B ( y i ) P_B(y_i) PB​(yi​)是否相等即可。时间复杂度为 O ( N + Q ) \mathcal O(N+Q) O(N+Q)或 O ( Q + N log ⁡ N ) \mathcal O(Q+N\log N) O(Q+NlogN)。
构造hack数据也很简单,只需部分前缀和相等即可,如:

5
1 3 5 6 7
3 2 4 1 5
1
3 3

这样,因为 1 + 3 + 5 = 3 + 2 + 4 = 9 1+3+5=3+2+4=9 1+3+5=3+2+4=9,所以这样的程序会认为这是相等的序列,从而输出Yes,但显然 { 1 , 3 , 5 } ≠ { 3 , 2 , 4 } \{1,3,5\}\ne\{3,2,4\} {1,3,5}={3,2,4},因此答案为No,程序错误。

现在考虑改进这个思路,使其不容易被hack,可以使用一个哈希函数:
H ( x ) = x ( x + A ) ( x + B )   m o d   P H(x)=x(x+A)(x+B)\bmod P H(x)=x(x+A)(x+B)modP
其中 A , B , P A,B,P A,B,P一般取质数, H ( x ) H(x) H(x)即为 x x x对应的哈希值。(对 P P P取模是为了防止哈希值太大导致溢出)
显然,这样有一个很小的概率会产生哈希冲突(即不同的数得到相同的哈希值),但因为 A , B , P A,B,P A,B,P的取值太多,评测机没法针对性的hack,所以正常情况下都能通过(CF的Hack机制除外)。如果真担心有问题,可以采取双哈希,即对于一个 x x x,用两个不同的哈希函数计算哈希值,这样就几乎不可能出现哈希冲突了。

现在,前缀和变为:
P A ( i ) = ∑ { H ( A 1 ) , … , H ( A i ) }   m o d   P P B ( i ) = ∑ { H ( B 1 ) , … , H ( B i ) }   m o d   P P_A(i)=\sum\{H(A_1),\dots,H(A_i)\}\bmod P\\ P_B(i)=\sum\{H(B_1),\dots,H(B_i)\}\bmod P PA​(i)=∑{H(A1​),…,H(Ai​)}modPPB​(i)=∑{H(B1​),…,H(Bi​)}modP
还是按原来的思路,判断前缀和是否相等即可。
总时间复杂度为 O ( n ) \mathcal O(n) O(n)(unordered_set/HashSet)或 O ( n log ⁡ n ) \mathcal O(n\log n) O(nlogn)(set/TreeSet)。

代码

这里还是要提一点,就是使用哈希时有一个小技巧,即直接取 P = 2 32 − 1 P=2^{32}-1 P=232−1(unsigned int)或者 P = 2 64 − 1 P=2^{64}-1 P=264−1(unsigned long long),使整数自然溢出,省去了麻烦又耗时间的取模步骤。CodeForces上还是建议取较大的质数(常用的有 1 0 9 + 7 , 998244353 10^9+7,998244353 109+7,998244353)作为 P P P,以免被hack导致丢分。

这里我用的哈希函数为 H ( x ) = x ( x + 93 ) ( x + 117 )   m o d   ( 2 32 − 1 ) H(x)=x(x+93)(x+117)\bmod(2^{32}-1) H(x)=x(x+93)(x+117)mod(232−1),即 A = 93 , B = 117 , P = 2 32 − 1 A=93,B=117,P=2^{32}-1 A=93,B=117,P=232−1。

#include <cstdio>
#include <unordered_set>
#define maxn 200005
using namespace std;

inline int read()
{
	char c;
	while((c = getchar()) < '0' || c > '9');
	int res = c ^ 48;
	while((c = getchar()) >= '0' && c <= '9')
		res = (res << 3) + (res << 1) + (c ^ 48);
	return res;
}

unsigned suma[maxn], sumb[maxn];
inline void hread(unsigned* psum, int n)
{
	unordered_set<int> s;
	for(int i=1, x; i<=n; i++)
	{
		psum[i] = psum[i - 1];
		if(s.insert(x = read()).second)
			psum[i] += x * unsigned(x + 93) * unsigned(x + 117);
	}
}

int main()
{
	int n = read();
	hread(suma, n);
	hread(sumb, n);
	for(int q=read(); q--;)
		puts(suma[read()] == sumb[read()]? "Yes": "No");
	return 0;
}
AtCoder初学者比赛:编程学习 ABC比赛为初学者提供了一个良好的平台,让他们在编程竞赛中获得实践经验,并提高他们的编程技能。在编程领域,AtCoder Beginner Contest(ABC)是一个非常受欢迎的比赛,旨在帮助初学者提高他们的编程能力。在这篇文章中,我们将介绍ABC比赛的一些基本概念,并提供一些示例代码来帮助您更好地理解。让我们来看一个简单的示例,来帮助您了解ABC比赛的工作原理。希望本文能帮助您了解AtCoder初学者比赛(ABC)的基本概念,并为您的编程学习之旅提供一些指导。给定两个整数A和B,计算它们的和。 阅读详情

相关推荐

AtCoder初学者竞赛: 编程学习

AtCoder初学者竞赛是一个面向编程初学者的竞赛平台,提供了一系列算法和数据结构问题。该竞赛旨在帮助参赛者提高他们的编程技能,并为他们提供一个实践的机会。竞赛通常在规定的时间内进行,参赛者需要解决给定的问题,并提交他们的解答。AtCoder初学者竞赛(AtCoder Beginner Contest)是一个受欢迎的在线编程竞赛平台,旨在帮助初学者提高编程技能。本文将介绍关于AtCoder初学者竞赛的基本知识,并提供一些示例代码,帮助读者更好地理解和应用这些概念。示例代码1:计算两个整数的和。

database_bug768的博客 2464

Atcoder abc250 题解 (A~G)

Atcoder abc250题解 (A~G)

qq_33956482的博客 1879

VMware 虚拟机里连不上网的五种解决方案

在VMware虚拟机里的虚拟机系统连接不上网络 首先,注意查看适配器选项里的网络连接这两个网络连接是否存在,如果不存在可以重新装一下VM 如果存在,连不上网 解决办法一: 虚拟机设置里,找到“网络适配器”,右边的网络连接选择“NAT 模式”,如果不行的话再linux系统。还是不行的话接着看第二种解决方案。 解决方法二: 可能原因是VMware NET Service...

墨轩 18万+

LeetCode每日一题(1703. Minimum Adjacent Swaps for K Consecutive Ones)

两个元素之间的距离很容易算,比如[0, 3, 5]中 0 到 3 的距离就是 3 - 0 = 3, 也就是将 0 移动到 3 的位置需要 3 步, 但是我们不需要将 0 移动到 3, 我们只需要将 0 移动到 2 就可以了。这时候我们用一个长度等于 k 的 sliding window 来遍历 one_positions, 会得到 3 个 window, [0, 3, 5], [3, 5, 7]和[5, 7, 8][0, 3, 5] 最终移动成 [2, 3, 4] 一共用了 3 步。0 到 5 => 5。

wangjun861205的博客 392

ENVI5.6 批量处理GF-2/GF-6/GF-7:从安装到融合的完整自动化流程

本文详细介绍了ENVI5.6环境下批量处理GF-2/GF-6/GF-7卫星数据的完整自动化流程,包括环境配置、工具安装、正射校正、图像融合等关键步骤。通过实战案例和优化技巧,帮助用户高效完成高分卫星影像处理,提升工作效率。特别针对GF-6和GF-7的特殊处理要点进行了深入解析。

weixin_42546392的博客 179

ubuntu恢复分区表——testdisk

testdisk恢复ubuntu分区表testdisk介绍安装testdisk使用testdisk恢复分区表 testdisk介绍 testdisk 具有广泛的功能,包括恢复丢失或损坏的分区和使不能启动磁盘可以重新启动,也经常被用来恢复被误删的文件。 安装testdisk 如果系统分区表被删除,需要使用ubuntu的启动盘,选择try ubnutu模式进入试用系统。 1、可以直接在终端安装testdisk: sudo apt-get install testdisk 通过命令直接打开testdisk: t

ZNestor的博客 6459

AtCoder Beginner Contest 250

AtCoder Beginner Contest 250

青少年趣味编程 960

fatal: unable to access ‘https://github.com/Stability-AI/stablediffusion.git/‘解决方案

本文主要介绍在安装 stable-diffusion-webui 时出现的 fatal: unable to access 'https://github.com/Stability-AI/stablediffusion.git/': Failed to connect to github.com port 443 after 21071 ms: Couldn't connect to server 问题的解决方案,希望能对你有所帮助。

水滴的博客 5685

AtCoder Beginner Contest 295——A-D讲解

蒟蒻来讲题,还望大家喜。若哪有问题,大家尽可提!Hello, 大家好哇!本讲解一下这场比赛的!

Edward Shi的博客 1258

ExpressLRS(ELRS)接收机技术全景:从历史演进、技术底层到产业生态全解析——上

ExpressLRS(ELRS)是一种由全球开源社区驱动的双向射频遥控链路协议栈,其接收机作为核心终端,承担信号接收解调、遥控指令解析、飞控数据交互与遥测回传等关键功能。自2018年问世以来,ELRS凭借极致性能、低成本、开放生态和强兼容性,从航模DIY方案发展为消费级无人机领域的事实标准,并逐步渗透工业级场景。 ELRS接收机采用模块化分层架构,支持2.4GHz和900MHz双频段,通过LoRa、FLRC、FSK多调制模式实现低延迟与远距离平衡。其核心技术包括自适应跳频抗干扰、TDD双向链路和极简数据包。

bother3000的博客 303

App 抓包难?Frida Hook 实战:绕过 SSL Pinning (证书绑定) 抓取某大厂 App 核心接口

当我们使用 Charles 抓包 HTTPS 时,本质上是实施了MITM(中间人攻击)。Charles 伪装成服务器,发给 App 一个自己的证书(伪造证书)。Charles 伪装成 App,拿着真正的证书去请求服务器。如果 App 只是简单校验“证书是否由受信任的 CA 签发”,那你把 Charles 的根证书安装到手机系统里,就能骗过它。但是,是 App 内置了服务器证书的Hash(指纹)。

BUG猿的博客 916

AtCoder题解——Beginner Contest 161——B-Popular Vote。血的教训,算法中慎用浮点数比较

简单记录一个原则,慎用浮点数比较。 问题由来 给一个朋友忽悠了,去写讲解一下 AtCoder Beginner Contest。既然是讲课,备课肯定是必须的。 题目链接为https://atcoder.jp/contests/abc161/tasks/abc161_b。 Problem Statement We have held a popularity poll for N item...

努力中的老周的专栏 1433

Linux内核配置选项详解及编译过程

在内核编译完成后,可以通过重启系统并选择新编译的内核来使用它。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。可以选择需要的网络协议和功能,并根据需要启用或禁用相应的选项。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。

TechGlide的博客 746

AtCoder Beginner Contest 250 A~E

AtCoder Beginner Contest 250 A~E A - Adjacent Squares 题意:给出一个行列为H,W的矩阵,再给一个坐标,问周围有多少个正方形。 // Problem: C - Adjacent Swaps // Contest: AtCoder - AtCoder Beginner Contest 250 // URL: https://atcoder.jp/contests/abc250/tasks/abc250_c // Memory Limit: 1024 MB /

m0_51731088的博客 737

物联网设备数据是如何流转的:基于EMQX与TDengine的前后端分离项目实践

背景 在我写了TDengine极简实战:从采集到入库,从前端到后端,体验物联网设备数据流转这篇文章后,不少读者朋友评论、私信说可不可以提供代码参考学习下,那必须是可以的。那篇文章主要介绍了数据采集、数据传输、数据转发、数据解析、数据存储、数据查询、数据呈现、数据导出、消息推送的物联网设备数据流程过程,作为体验 TDengine 的极简实战项目,没引入过多的业务设计(复杂功能)以及异步解耦设计(消息中间件)。 在整理代码的过程中,我发现虽然整个项目并不复杂,但是涉及到的技术点较多,有必要对关键的组件进行说明

Heartsuit的博客 9412

IEM模型,地表粗糙度模拟

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

topcoder SRM 517 div1 AdjacentSwaps 分析与题解

题目大意: 给定一个N个数的排列,要将其经过N-1次的交换(只能是相邻位置数的交换),变成0到N-1的排列,问有多少种交换的排列方式。 rng_58的题,费脑筋。 这个一个关于排列的inversion的题。排列的inversion代表排列的有序程度。排列的inversion的数量从0到n*(n-1)/2。 由此得出结论,要将一个排列经过N-1次的交换,变成0到N-1的排列,其inversi

xiaobaoo的博客 577

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

AtCoder Beginner Contest 278 A~E题详细讲解

【精品题解】这次比赛非常水,也许是因为上一场比赛出得太难了,有兴趣的可以点击。赛时:A,B,C,D,E,取得历史新高。话不多说,本题解现在开始。A - Shift以上是对shift的英文翻译,和上次比赛一样,不知道是几个意思。题目大意:有一个长度为n的数组,进行k次操作:每次删掉第一位,并在最后放进一个0。输出操作后的数组。题目思路:用队列(queue)模拟。

m0_70400544的博客 1006

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

零点工作室暑假集训(AtCoder--ABC250)

题意: 有一个网格,包含H行和W列。用(i,j)表示从上往下第i行、从左往右第j列的方块。找出与方块(R,C)共享边的方块的数量。在这里,两个方块(a,b)和(c,d)被认为共享一条边,当且仅当|a-c|+|b-d|=1(其中|x|表示x的绝对值)。思路:直接枚举所有点,判断是否与指定点的曼哈顿距离为 1。

weixin_73807663的博客 443

AtCoder Beginner Contest 334 A~F

给出球拍和手套的价格,哪个贵买哪个,要求输出购买的物品。

Code_Shark的博客 988

AtCoder Beginner Contest 288题解(A-G)

AtCoder Beginner Contest 288题解(A-G)

weixin_64008869的博客 1230

AtCoder题解——Beginner Contest 178——E - Dist Max

题目相关 题目链接 AtCoder Beginner Contest 178 E 题,https://atcoder.jp/contests/abc178/tasks/abc178_e。 Problem Statement There are N points on the 2D plane, i-th of which is located on (xi,yi). There can be multiple points that share the same coordinate. What i

努力中的老周的专栏 678

Atcoder Beginner Contest 271 A~E 题题解

Atcoder Beginner Contest 271 A~E 题题解

qq_61768466的博客 801

AtCoder Beginner Contest 250 部分题解

A.模拟 B 模拟 C 模拟 + map统计 D 质数筛 + 前缀和 E 序列哈希化 + 前缀和

山中一扶苏的博客 677

AtCoder Beginner Contest 250 DEFG题解

Atcoder 补题

weixin_63785821的博客 193

AtCoder算法竞技平台简介

AtCoder是日本最大的算法竞技网站,域名为http://atcoder.jp/(注意http://www.atcoder.jp/ 是其官网)。AtCoder支持日语和英语。 AtCoder每周六北京时间20:00(日本标准时间则为21:00)会有比赛。AtCoder的比赛分为三个等级: (1)AtCoder Beginner Contest (ABC),是给算法初学者参加的。总共有4道...

小树学信奥 2万+
上一篇: UNIQUE VISION Programming Contest 2022(AtCoder Beginner Contest 248)C~D 题解
下一篇: AtCoder Beginner Contest 252 A~G 题解
GoodCoder666
博客等级 码龄7年 2320粉丝 85原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值