[bzoj5308][二分][ST表]胖

Xilinx的DDR4 IP 阅读详情

Description

Cedyks是九条可怜的好朋友(可能这场比赛公开以后就不是了),也是这题的主人公。
Cedyks是一个富有的男孩子。他住在著名的ThePLace(宫殿)中。
Cedyks是一个努力的男孩子。他每天都做着不一样的题来锻炼他的The SaLt(灵魂)。
这天,他打算在他的宫殿外围修筑一道城墙,城墙上有n座瞭望塔。
你可以把城墙看做一条线段,瞭望塔是线段上的n个点,其中1和n分别为城墙的两个端点。
其中第i座瞭望塔和第i+1座瞭望塔的距离为wi,他们之间的道路是双向的。
城墙很快就修建好了,现在Cedyks开始计划修筑他的宫殿到城墙的道路。 因为这题的题目名称,
Cedyks打算用他的宫殿到每一个瞭望塔的最短道路之和来衡量一个修建计划。
现在Cedyks手上有m个设计方案,第k个设计方案会在宫殿和瞭望塔之间修建Tk条双向道路, 第i条道路连接着瞭望塔ai,长度为Li。
计算到每一个瞭望塔的最短路之和是一个繁重的工程,本来Cedyks想用广为流传的SPFA算法
来求解,但是因为他的butter(缓冲区)实在是太小了,他只能转而用原始的贝尔福特曼算法 来计算,算法的流程大概如下:
1:定义宫殿是0号点,第i个瞭望塔是i号点,双向边(ui,vi,Li)为一条连接ui和vi的双向道路。
令d为距离数组,最开始d0=0,di=10^18(i∈[1,n])。 2:令辅助数组c=d。依次对于每一条边(ui,vi,wi)进行增广,
cui=min(cui,dvi+wi), cvi=min(cvi,dui+wi)。
3:令t为c和d中不一样的位置个数,即令S={i|ci!=di},则t=S。若t=0,说明d
就是最终的最短路,算法结束。否则令d=c,回到第二步。 因为需要计算的设计方案实在是太多了,所以Cedyks雇佣了一些人来帮他进行计算。
为了避免这些人用捏造出来的数据偷懒,他定义一个设计方案的校验值为在这个方案
上运行贝尔福特曼算法每一次进入第三步t的和。他会让好几个雇佣来的人计算同样 的设计方案,并比对每一个人给出的校验值。
你是Cedyks雇佣来的苦力之一,聪明的你发现在这个情形下计算最短路的长度的和
是一件非常简单的事情。但是寄人篱下不得不低头,你不得不再计算出每一个方案 的校验值来交差。

Input

第一行输入两个整数n,m,表示瞭望塔个数和设计方案个数。 接下来一行n-1个数wi,表示瞭望塔i和i+1之间道路的长度。
接下来m行,每行描述一个设计方案。 第一个整数K表示设计方案中的道路数量, 接下来K个数对(ai,Li)为一条宫殿到瞭望塔的边。 1 <=
wi, li <= 109, 1 <= ∑ K <= 2 × 10^5 N,M<=2*10^5

Output

对于每一个设计方案,输出一行一个整数表示校验值。

Sample Input

5 5

2 3 1 4

1 2 2

2 1 1 4 10

3 1 1 3 1 5 1

3 1 10 2 100 5 1

5 1 1 2 1 3 1 4 1 5 1

Sample Output

5

8

5

8

5

题解

如同一个sb
先是一个性质
这张图最后是被某个点更新的点一定是连续一段的
开始想用单调栈维护最终每个点更新的是哪一段,然后在这个基础上算答案
然后发现假了…
其实不妨把这个性质转一下
每个点能更新到的点同样也是连续一段的,这里的更新并不保证最后这个点不被其他点更新
这里我们的意思是让这个点到两个端点这一段路径,是否有可能成为某一段时间的最短路

那么这样的话,答案就很方便计算了
就是∑ri−li+1\sum r_i-l_i+1∑ri​−li​+1
推一下柿子然后用两个ST表维护最小值
注意一个点如果能被他两边的点同时更新,那么我们取左边那个点更新
还是那个道理
很多时候,问题并不能一步解决
把东西转换一下,就变得显而易见了

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<queue>
#include<vector>
#include<ctime>
#include<map>
#include<bitset>
#include<set>
#define LL long long
#define mp(x,y) make_pair(x,y)
#define pll pair<long long,long long>
#define pii pair<int,int>
using namespace std;
inline int read()
{
	int f=1,x=0;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
	return x*f;
}
int stack[20];
inline void write(LL x)
{
	if(x<0){putchar('-');x=-x;}
    if(!x){putchar('0');return;}
    int top=0;
    while(x)stack[++top]=x%10,x/=10;
    while(top)putchar(stack[top--]+'0');
}
inline void pr1(int x){write(x);putchar(' ');}
inline void pr2(LL x){write(x);putchar('\n');}
const int MAXN=200005;
LL prefix[MAXN];
int n,m,T;
LL mn[20][MAXN][2],s1[MAXN],s2[MAXN],Log[MAXN],bin[25];
int is[MAXN],tim;
void init(int ln)
{
	for(int i=1;i<=ln;i++)mn[0][i][0]=s1[i],mn[0][i][1]=s2[i];
	for(int i=1;bin[i]<=ln;i++)
		for(int x=1;x+bin[i]-1<=ln;x++)
		{
			mn[i][x][0]=min(mn[i-1][x][0],mn[i-1][x+bin[i-1]][0]);
			mn[i][x][1]=min(mn[i-1][x][1],mn[i-1][x+bin[i-1]][1]);
		}
}
LL getmn(int l,int r,int o)
{
	int K=Log[r-l+1];
	return min(mn[K][l][o],mn[K][r-bin[K]+1][o]);
}
struct edge{int x,c;}w[MAXN];
bool cmp(edge n1,edge n2){return n1.x<n2.x;}
int getpos(int u,int o)
{
	int l=1,r=T,re=-1;
	while(l<=r)
	{
		int mid=(l+r)/2;
		if(o==0)//找大于等于的 
		{
			if(w[mid].x>=u)re=mid,r=mid-1;
			else l=mid+1;
		}
		else//找小于等于的 
		{
			if(w[mid].x<=u)re=mid,l=mid+1;
			else r=mid-1;
		}
	}
	return re;
}
bool check1(int u1,int u2,LL c)
{
	int ls=max(1,u1-(u2-u1)),rs=u2-1;
	int p1=getpos(ls,0),p2=getpos(rs,1),p3=getpos(u1,1);
	if(p2==-1)return true; 
	bool re=true;
	if(p1<=p3)
	{
		LL di=getmn(p1,p3,0);
		if(prefix[u1]+di<=c)re=false;
	}
	p3=getpos(u1,0);
	if(p3<=p2)
	{
		LL di=getmn(p3,p2,1);
		if(-prefix[u1]+di<=c)re=false;
	}
	return re;
}
int getl(int u,int c)
{
	int l=1,r=u,re=u;
	while(l<=r)
	{
		int mid=(l+r)/2;
		if(check1(mid,u,prefix[u]-prefix[mid]+c))re=mid,r=mid-1;
		else l=mid+1;
	}
	return re;
}
bool check2(int u1,int u2,LL c)
{
	int ls=u2+1,rs=min(n,u1+u1-u2);
	int p1=getpos(ls,0),p2=getpos(rs,1),p3=getpos(u1,1);
	if(p1==-1)return true; 
	bool re=true;
	if(p1<=p3)
	{
		LL di=getmn(p1,p3,0);
		if(prefix[u1]+di<=c)re=false;
	}
	p3=getpos(u1,0);
	if(p3<=p2&&p3!=-1)
	{
		LL di=getmn(p3,p2,1);
		if(-prefix[u1]+di<c)re=false;
		else if(-prefix[u1]+di==c)
		{
			if(p3<p2)
			{
				di=getmn(p3,p2-1,1);
				if(-prefix[u1]+di<=c)re=false;
			}
			if(u1+u1-u2<=n&&is[u1+u1-u2]==tim&&prefix[w[p2].x]-prefix[u1]+w[p2].c==c)re&=1;
			else re=false;
		}
	}
	return re;
}
int getr(int u,int c)
{
	int l=u,r=n,re=u;
	while(l<=r)
	{
		int mid=(l+r)/2;
		if(check2(mid,u,prefix[mid]-prefix[u]+c))re=mid,l=mid+1;
		else r=mid-1;
	}
	return re;
}
void solve()
{
	T=read();tim++;
	for(int i=1;i<=T;i++)w[i].x=read(),w[i].c=read(),is[w[i].x]=tim;
	sort(w+1,w+1+T,cmp);
	for(int i=1;i<=T;i++)s1[i]=w[i].c-prefix[w[i].x],s2[i]=w[i].c+prefix[w[i].x];
	init(T);LL ans=0;
	for(int i=1;i<=T;i++)
	{
		int l=getl(w[i].x,w[i].c);
		int r=getr(w[i].x,w[i].c);
		ans+=r-l+1;
	}
	pr2(ans);
}
int main()
{
	bin[0]=1;for(int i=1;i<=20;i++)bin[i]=bin[i-1]<<1;
	Log[1]=0;for(int i=2;i<MAXN;i++)Log[i]=Log[i>>1]+1;
	n=read();m=read();
	for(int i=2;i<=n;i++)prefix[i]=prefix[i-1]+read();
	while(m--)solve();
	return 0;
}
SoC 验证老兵手册 《SoC验证老兵手册》摘要: 针对大型SoC系统级验证,手册提出Cache+DMA场景的高效验证方案。核心方法采用C测试用例(模拟Linux/RTOS真实场景)触发隐蔽bug,配合SV Checker精准捕捉硬件问题(如DMA读取脏缓存行)。特别强调验证方法论:C用例负责复杂行为模拟,SV专注RTL正确性检查;利用Linux天然并发性暴露硬件缺陷。手册还包含模拟面试攻防技巧,指出验证架构师需具备定义Stimulus/Checker边界的能力。终极判断标准:未通过Linux下Cache+DMA+SMP+中断测 阅读详情

相关推荐

医学超声影像研究——从拒稿到录用:我的UMB投稿实战复盘

本文分享了作者将一篇关于超声影像中肿瘤传统分类方法的研究论文,从被其他期刊拒稿到最终被《Ultrasound in Medicine & Biology》录用的完整实战经验。文章详细复盘了心态调整、精准选刊、针对UMB期刊的稿件精修、投稿系统操作细节以及与审稿人有效沟通回复的全过程,为医学影像领域的科研工作者提供了宝贵的投稿策略与实操指南。

stem5的博客 492

[BZOJ5308][ST表]ZJOI2018:胖

BZOJ5308 因为城墙是一条直线,所以很容易看出我们只需要考虑城堡到城墙的路 那么关键是求出一条城堡到城墙的路的贡献 把一条路的终点向左右走的边界拓展出来,然后用ST表辅助查询就好了 Code: #include&lt;bits/stdc++.h&gt; #define ll long long using namespace std; inline int read(){ int res=...

romiqi 264

SAR学习笔记后续-phased工具箱介绍

摘要:相控阵雷达介绍,基于仿真对MATLAB中phased工具箱进行了详细介绍

yjh_2019的博客 1万+

bzoj5308: [Zjoi2018]胖(二分答案+st表)

传送门 想题5分钟调题两小时系列 其实还是我tcl 读完题之后自然会知道一个关键点能够更新的点是一段连续的区间,于是我们对于每个点能到的左右区间二分答案,用ststst表维护一下查询即可。 代码: #include&lt;bits/stdc++.h&gt; #define ri register int using namespace std; inline int read(){ int an...

苟为蒟蒻又何妨 266

地心地固坐标系与北天东坐标系的转换

经过这一步旋转,x3轴和y3轴就处在过O3点的经度线所在的平面了,而且z3轴指向了东。将图3的坐标系旋转成图2的样子。这里需要多次旋转,每次以某个轴为对称轴进行旋转,对应的坐标变换参考。的原点在地心,Z轴指向北极点,X轴指向本初子午线与赤道的交点,Y轴指向符合右手定则,如下图所示。下面实现地心地固坐标系到北天东坐标系的转换,问题描述为:设一点。以y1轴为对称轴,顺时针旋转90°,得到图4的样子。,X轴指向北,Y轴指向天,Z轴指向东,如下图所示。因此,北天东坐标下的坐标为。点在图3坐标系下的坐标。

csdnqixiaoxin的博客 3555

深入理解Linux 内核追踪机制

Linux 存在众多 tracing tools,比如 ftrace、perf,他们可用于内核的调试、提高内核的可观测性。众多的工具也意味着繁杂的概念,诸如 tracepoint、trace events、kprobe、eBPF 等,甚至让人搞不清楚他们到底是干什么的。本文尝试理清这些概念。

youzhangjing_的博客 1730

2019.03.04【ZJOI2018】【洛谷P4501】【BZOJ5308】胖(ST表)(二分答案)

BZOJ传送门 洛谷传送门 解析: ZJOI2018对我现阶段而言唯一一道可做的题。(剩下全是神仙题做之前先%jiry_2) 我们发现这个图长得很有特点,而且Bellman-Ford第一步肯定是更新直接连接的那些节点。然后再在链上扩展。 现在考虑一个点与000有边的点uuu,它能够更新的显然是包含它的一个连续区间,我们需要考虑求出这个区间的左右端点l,rl,rl,r,那么就能够得到它更新的区间长...

zxyoi_dreamer的博客(不定期诈尸) 265

达梦数据库集群部署(主备)

达梦数据库集群部署(主备)

m0_71845127的博客 1461

【BZOJ5308】[ZJOI2018]胖(模拟,ST表,二分)

【BZOJ5308】[ZJOI2018]胖(模拟,ST表,二分) 题面 BZOJ 洛谷 题解 首先发现每条\(0\)出发的边都一定会更新到底下的一段区间的点。 考虑存在一条\(0\rightarrow x\)的边,我们来求解其可以影响的区间\([L,R]\),显然\(L\le x\le R\)。 两侧分开考虑,以左边举例。 二分一个\(L\)。如果这个\(L\)可行,即不存在一条边\(0\righ...

weixin_30748995的博客 128

从零到一:手把手教你用HFSS仿真60GHz圆极化磁电偶极子天线(附参数调优心得)

本文详细介绍了在HFSS中设计60GHz圆极化磁电偶极子天线的全流程,包括仿真环境搭建、参数化建模、收敛性优化和性能验证。通过系统化的参数扫描和优化策略,显著提升了天线的轴比带宽和增益性能,为毫米波通信应用提供了高效的天线设计解决方案。

weixin_42614269的博客 311

C++调用海康相机SDK采集图像(C++\QT Creator\openCV\线程\接口)

C++调用海康相机SDK采集图像(C++\QT Creator\openCV\线程\接口) 之前写了一篇关于C++调用海康相机SDK采集图像的文章,有很多人私下发送消息咨询了一些问题,由于工作繁忙,只答复了一部分问题,今天抽出时间从头梳理了一下大家提出的问题,把我能够回答的问题都解答一次。上一次的程序只是简单的实现了图像的采集,没有使用到线程,今天把程序重新做出调整,把线程和多态加进去。文章最后有项目的下载地址。 我使用的是QT Creator这个IDE,版本信息如下: 我把相机采集的图像转换为openC

大樱桃的博客 1万+

bzoj5308[Zjoi2018]胖(线段树,二分,st表)

Description Cedyks是九条可怜的好朋友(可能这场比赛公开以后就不是了),也是这题的主人公。 Cedyks是一个富有的男孩子。他住在著名的ThePLace(宫殿)中。 Cedyks是一个努力的男孩子。他每天都做着不一样的题来锻炼他的The SaLt(灵魂)。 这天,他打算在他的宫殿外围修筑一道城墙,城墙上有n座瞭望塔。 你可以把城墙看做一条线段,瞭望塔是线段上的n个点,其中1和n分...

a1035719430的博客 340

基于STM32+ESP8266+手机APP的心率血氧温湿度监测报警系统设计(项目资料ID:18)

基于 STM32 微控制器、ESP8266 无线模块和 QT 手机 APP 的多参数监测报警系统。该系统可实时采集心率、血氧饱和度、环境温湿度等参数,通过 OLED 显示屏本地显示,并通过 WiFi 模块上传至手机 APP 实现远程监测与数据可视化。系统具备报警阈值自定义功能,当参数超出设定范围时,通过蜂鸣器和 LED 进行声光报警。系统以 STM32F103 为控制核心,采用 MAX30102 传感器采集心率和血氧,DHT20 采集温湿度,通过 ESP8266 实现无线通信,配合 QT 开发的手机 APP

以培养嵌入式工程师为己任 1万+

2019.03.04 bzoj5308: [Zjoi2018]胖(二分答案+st表)

传送门 想题5分钟调题两小时系列 其实还是我tcl 读完题之后自然会知道一个关键点能够更新的点是一段连续的区间,于是我们对于每个点能到的左右区间二分答案,用ststst表维护一下查询即可。 代码: #include<bits/stdc++.h> #define ri register int using namespace std; in...

weixin_30594001的博客 93

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

bzoj 5308 [ZJOI2018] 胖

bzoj 5308 [ZJOI2018] 胖 Link Solution \(\text{ZJOI2018}\) 最简单的一道题 首先看数据范围,大概就是每次 \(O(k\log n)\) 或者 \(O(k\log ^2n)\) 不难发现,答案就是每一个修建方案对应的点能够扩展的点数之和 就是说,对于每一个修建方案对应的点,它能够在 贝尔福特曼 算法中扩展到的点是一个区间,我们要求所有这...

aozhuan8489的博客 161

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ZJOI2018 胖 二分 ST表

原文链接https://www.cnblogs.com/zhouzhendong/p/ZJOI2018Day2T2.html 题目传送门 - BZOJ5308 题目传送门 - LOJ2529 题目传送门 - 洛谷P4501 题意   略。 题解   首先这个题目名称用来形容 cly 太好了。   考虑每一对 $(a_i,l_i)$ 对于答案的贡献。   我们可以发现每一条这种路...

weixin_30786657的博客 145

[ZJOI2018]胖

[Luogu4501] [BZOJ5308] [LOJ2529]有数据就是好 清晰的思路 以及 代码借鉴 对于\(k\)个关键点中的每一个关键点\(a\),二分它能更新到的左端点和右端点 设\(d=|a−p|\),则\(a\)可以更新\(p\)当且仅当区间\([p−d,p+d]\)中的关键点到\(p\)的距离没有比\(a\)更优的 用\(st\)表维护两个东西 : 区间中到右端点最短的距离 , 区...

weixin_30732487的博客 171

[bzoj3477][Usaco2014 Mar][二分]Sabotage

Description Farmer John’s arch-nemesis, Farmer Paul, has decided to sabotage Farmer John’s milking equipment! The milking equipment consists of a row of N (3 <= N <= 100,000) milking machines,

Rose_max的博客 972

[bzoj1305][网络流]dance跳舞

Description 一次舞会有n个男孩和n个女孩。每首曲子开始时,所有男孩和女孩恰好配成n对跳交谊舞。每个男孩都不会和同一个女孩跳两首(或更多)舞曲。有一些男孩女孩相互喜欢,而其他相互不喜欢(不会“单向喜欢”)。每个男孩最多只愿意和k个不喜欢的女孩跳舞,而每个女孩也最多只愿意和k个不喜欢的男孩跳舞。给出每对男孩女孩是否相互喜欢的信息,舞会最多能有几首舞曲? Input 第一行包含两个整数

Rose_max的博客 965

[bzoj1650][Usaco2006 Dec][二分]跳石子

Description Every year the cows hold an event featuring a peculiar version of hopscotch that involves carefully jumping from rock to rock in a river. The excitement takes place on a long, strai

Rose_max的博客 709

[bzoj1189][网络流-最大流][二分]紧急疏散evacuate

Description 发生了火警,所有人员需要紧急疏散!假设每个房间是一个N M的矩形区域。每个格子如果是’.’,那么表示这是一块空地;如果是’X’,那么表示这是一面墙,如果是’D’,那么表示这是一扇门,人们可以从这儿撤出房间。已知门一定在房间的边界上,并且边界上不会有空地。最初,每块空地上都有一个人,在疏散的时候,每一秒钟每个人都可以向上下左右四个方向移动一格,当然他也可以站着不

Rose_max的博客 595

[bzoj5090][二分]组题

Description 著名出题人小Q的备忘录上共有n道可以出的题目,按照顺序依次编号为1到n,其中第i道题目的难度系数被小Q估计 为a_i,难度系数越高,题目越难,负数表示这道题目非常简单。小Q现在要出一套难题,他决定从备忘录中选取编 号连续的若干道题目,使得平均难度系数最高。当然,小Q不能做得太过分,一套题目必须至少包含k道题目,因此 他不能通过直接选取难度系数最高的那道题

Rose_max的博客 577

[bzoj4552][二分][线段树]排序

Description 在2016年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题 ,需要你来帮助他。这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排 序分为两种:1:(0,l,r)表示将区间[l,r]的数字升序排序2:(1,l,r)表示将区间[l,r]的数字降序排序最后询问第q 位置上的数...

Rose_max的博客 558

[bzoj4952][二分]Need for Speed

DescriptionSheila 是一名学生,她开着一辆经典的学生车:一辆又老,又慢,又锈,还老是崩坏的车。最近,时速表盘的指针还掉 了。她把指针粘了回去,但是她可能没有粘对角度。因此,当表盘读数为s时,她真实的速度可能是s+c,其中c为未知 常数 (可能是负的) 。Sheila 在最近的行程中仔细地做了一些记录,并希望能用这些记录来计算出c的值。行程由n 段组成。在第 i 段中,她匀速行驶了di

Rose_max的博客 556

[bzoj2654][最小生成树][二分]tree

Description 给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有need条白色边的生成树。 题目保证有解。 Input 第一行V,E,need分别表示点数,边数和需要的白色边数。 接下来E行,每行s,t,c,col表示这边的端点(点从0开始标号),边权,颜色(0白色1黑色)。 Output 一行表示所求生成树的边权和。 V<=50000,E<=10000

Rose_max的博客 555

[bzoj2709][二分]迷宫花园

Description 普通得甚至有些二逼的矮穷挫少年——Dios,不可避免地遇到了他生命中的劫数,白富 美少女 Nyution。但是按照正常的校园故事的发展,Nyution 是无论如何不会喜欢上各方面 条件都差到不行的 Dios 的。不过,Dios 还是面对 Nyution 颤抖着说出了那三个字。Nyution 既不想过分地让 Dios 伤心,又不想接受她根

Rose_max的博客 495
上一篇: [bzoj4735][数论]你的生命已如风中残烛
下一篇: PAM学习笔记
Rose_max
博客等级 码龄10年 97粉丝 610原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值