POJ 1061 青蛙的约会(扩展欧几里得)

【代码超详解】POJ 1061 青蛙的约会(扩展欧几里得算法,0 ms) 一、题目描述 二、算法分析说明与代码编写指导 三、AC 代码(0 ms) #include<cstdio> #pragma warning(disable:4996) //Solve ax + by = GCD(a, b) for x, y. template<class _Ty> _Ty extgcd(const _Ty& a, const _Ty& ... 阅读详情

Description

两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是 它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下 去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只 青蛙是否能够碰面,会在什么时候碰面。
我们把这两只青蛙分别叫做青蛙A和青蛙B,并且规定纬度线上东经0度处为原点,由东往西为正方向,单位长度1米,这样我们就得到了一条首尾相接的数轴。设 青蛙A的出发点坐标是x,青蛙B的出发点坐标是y。青蛙A一次能跳m米,青蛙B一次能跳n米,两只青蛙跳一次所花费的时间相同。纬度线总长L米。现在要你 求出它们跳了几次以后才会碰面

Input

输入只包括一行5个整数x,y,m,n,L,其中x≠y < 2000000000,0 < m、n < 2000000000,0 < L < 2100000000。

Output

输出碰面所需要的跳跃次数,如果永远不可能碰面则输出一行”Impossible”

Sample Input

1 2 3 4 5

Sample Output

4

分析:设两只青蛙跳S次之后碰面且A比B跳得快,则(x + S * m) - (y + S * n) = k * L(k = 0, 1, 2……)。移项合并后的(n - m) * S + k * L = (x - y).令a = n - m, b = L, c = x - y,即a * S + b * L = c(1)若式(1)有整数解,则两只青蛙能相遇,否则不能。所以问题就转化为了求方程的整数解。首先计算出d = gcd(a, b),如果d不能整除c,则方程无整数解。否则,在方程两边同时除以d,得到a’ * S + b’ * L = c‘,此时gcd(a’, b’) = 1.然后利用扩展欧几里得算法求出a’ * S + b’ * L = 1’的一组整数解x0, y0,则(c’ * x0, c’ * y0)是a’ * S + b’ * L = c‘的一组整数解,a’ * S + b’ * L = c‘的所有解为(x = c’ * x0 + b’ * k, y = c’ * y0 - a’ * k),同时也是a * S + b * L = c的所有解。


代码一

#include <cstdio>
#include <cmath>
typedef long long LL;

LL X, Y, M, N, L;

LL gcd(LL a, LL b) {
    while(b) {
        LL r = a % b;
        a = b;
        b = r;
    }
    return a;
}

void extend_gcd(LL a, LL b, LL &x, LL &y) {
    if(b == 0) {
        x = 1;
        y = 0;
        return ;
    }
    else {
        extend_gcd(b, a % b, x, y);
        LL tmp = x;
        x = y;
        y = tmp - a / b * y;
    }
}

int main() {
    LL x, y, d;
    while(~scanf("%I64d%I64d%I64d%I64d%I64d", &X, &Y, &M, &N, &L)) {
        LL a = N - M;
        LL b = L;
        LL c = X - Y;
        d = gcd(a, b);
        if(c % d != 0) {
            printf("Impossible\n");
            continue;
        }
        a /= d;
        b /= d;
        c /= d;
        extend_gcd(a, b, x, y);
        LL t = c * x % b;
        if(t < 0) t += b;
        printf("%I64d\n", t);
    }
    return 0;
}

代码二

#include <iostream>  
    typedef long long LL;  
    using namespace std;  

    LL X, Y, M, N, L;  

    void extend_gcd(LL a, LL b, LL &d, LL &x, LL &y) {  
        if(b == 0) { d = a; x = 1; y = 0; }  
        else { extend_gcd(b, a % b, d, y, x); y -= x * (a / b); }  
    }  

    int main() {  
        while(cin >> X >> Y >> M >> N >> L) {  
            LL d, x, y;  
            extend_gcd(N - M, L, d, x, y);  
            if((X - Y) % d == 0) {  
                LL p = L / d;      
                x = (X - Y) / d * x;  
                x = (x % p + p) % p;  //防止x为负值  
                cout << x << endl;  
            }  
            else cout << "Impossible" << endl;  
        }  
        return 0;  
    }  

    /* d为N-M和L的最大公约数,x为(N-M)/d对L/d的逆元,即((N-M)/d) * x ≡ 1(mod L/d), 
    即((N-M)/d) * x + (L / d)* y = 1的一组解, 
    所以((N-M)/d) * x + (L / d)* y = (X-Y)/d的一组解为x0 = (X-Y)/d * x. 
    这也是(N - M) * x+ L * y = (X - Y)的一组解。 */
以POJ1061青蛙的约会为例谈扩展欧几里得算法 以POJ1068青蛙的约会为例谈扩展欧几里得算法 阅读详情

相关推荐

MuJoCo 机械臂关节空间阻抗控制Impedance实现(附代码)

阻抗控制通过调整关节的刚度和阻尼,让机器人在接触时产生顺应性,减少冲击力,其核心目标是在接触外部载荷时能够自适应调整输出力矩,实现力与位置的协同控制。阻抗控制可以很快的到达设定位置,在此基础上,使用mujoco交互中的施加外力操作,可以看到当外力松开后,机械臂也可以很快的回弹回设定位置。其中self.Kp和self.Kd为固定刚度和阻尼系数,通过修改刚度和阻尼参数,可以变得更柔顺来应对各种场景。注释掉该行后,直接simulate仿真可以看到机械臂控制位置震荡等情况,接下来引入关节空间阻抗控制的代码。

darcsdn 1276

POJ 1061青蛙的约会 ,扩展欧几里得算法

POJ 1061青蛙的约会 ,扩展欧几里得算法

DJR228的专栏 733

C语言 100道经典编程题适用于专升本,专接本【详细分析版】_c语言专升本题目

/法2//left指向起始 right指向数组末尾= 0){left++;//如果*left是奇数就循环接着向后指,直到指向偶数就退出//(left

2401_84978503的博客 695

扩展欧几里得原理的应用:POJ1061青蛙的约会

/* POJ 1061: 青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 123709 Accepted: 26395 Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约...

as3399639的博客 207

Halcon深度学习2 -- 标注工具Deep Learning Tool下载安装

Deep Learning Tool为Halcon开发公司MVTec官方提供的一款标注工具: 标记培训数据是任何深度学习应用程序的关键的第一步。 当涉及到应用程序的性能,准确性和健壮性时,此标记数据的质量起着重要作用。 借助MVTec深度学习工具,我们正在为HALCON用户创建全面流畅的深度学习体验。 通过开发我们自己的解决方案,我们确保可以将其输出无缝集成到HALCON中。 该应用程序还使我们能够吸收在开发HALCON深度学习算法时获得的丰富经验和专业知识,而该算法自然也涉及很多标签! Deep.

fengyingv的博客 1万+

el-transfer和el-tree进行结合搞一个树形穿梭框

由于业务需求需要在穿梭框里使用树形结构,但是本身element里并不支持,于是参考了别的大佬发的文章作为思路及后续自己新增了一些处理功能。

bbkhhvv的博客 6307

扩展欧几里得 POJ1061青蛙的约会

题意很简单,很早就想做的题目,但一直由于对数论的恐惧

Hatsune__Miku 568

Winform从入门到精通(1)——Label(史上最全)

本篇文章是对专栏《winform控件从入门到精通》的详细介绍

qq_34059233的博客 4万+

poj 1061 青蛙的约会 扩展欧几里得

写在前面:关于扩展欧几里得 已知存在数x,y使得对于确定的a,b有ax+by=gcd(a,b),所以对于一般的ax+by=c,只要gcd(a,b)能够整除c,就一定存在解x,y,且解的个数为c/gcd(a,b)。 关于如何求x,y ax+by=gcd(a,b)=gcd(b,a%b)=bx'+(a%b)y',整理之后可以得到x=y',y=(x'-a/cy'),又因为gcd(d,0)(d为gcd

ctrss的博客 447

第133章 PCL OrientedBoundingBox 有向包围盒

中文叫有向包围盒,是一种旋转过的包围盒。特点:不像AABB那样固定朝向坐标轴能更紧密地包裹物体适用于复杂姿态的物体,比如倾斜、旋转的物体通常通过PCA、惯性矩等算法确定方向。

yumeiguo的博客 264

基于ZYNQ的HP总线与DDR交互:实现PL与PS高效数据传输的完整指南

本文将深入探讨如何通过AXI HP总线实现PL与PS的DDR交互,结合代码示例、硬件配置与创新优化,助力开发者掌握这一关键技术。ZYNQ内部通过AXI HP接口直接连接PL与DDR控制器,PL通过AXI协议发送读写请求,绕过PS的CPU直接操作DDR。通过AXI HP总线实现PL与PS的DDR交互,开发者可充分发挥ZYNQ异构架构的优势。在Xilinx ZYNQ系列芯片中,PS(Processing System)与PL(Programmable Logic)的协同设计是其核心优势。

QQ_778132974的博客 1225

poj 1061 青蛙的约会(扩展欧几里得)

被稍微坑了一下下,本质上还是水题

巴达鸟巴达鸟 555

手把手教你使用YOLOv11完成人脸分类识别,YOLOv11人脸识别,解决中文乱码问题,全网最详细教程

手把手教你使用YOLOv11完成人脸分类识别,YOLOv11人脸识别,解决中文乱码问题,全网最详细教程

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4447

POJ 1061 青蛙的约会 扩展欧几里得

题目链接:http://poj.org/problem?id=1061 大概推导一下可以得出一个同余数的方程 (x - y) + (m - n) * k = L * s, 即左边是L的倍数 然后移项可以得到 (n - m)*k + L * s = x - y, 也就是a * x + b * y = c(x y是未知数) 之后就可以使用扩展欧几里得算法计算出x,进而得到答案。 需要...

weixin_30287169的博客 94

廖雪峰Python教程[完整版]

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

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【POJ 1061】青蛙的约会(扩展欧几里得)

【POJ 1061】青蛙的约会(扩展欧几里得) Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 103473   Accepted: 20116 Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条

ACMer' 4204

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

POJ 1061.青蛙的约会-扩展欧几里得

扩展欧几里得算法 是欧几里得算法(又叫辗转相除法)的扩展。除了计算a、b两个整数的最大公约数,此算法还能找到整数x、y(其中一个很可能是负数)。通常谈到最大公因子, 我们都会提到一个非常基本的事实: 给予二整数 a 与 b, 必存在有整数 x 与 y 使得ax + by = gcd(a,b)。有两个数a,b,对它们进行辗转相除法,可得它们的最大公约数——这是众所周知的。然后,收集辗转相除法中产生...

weixin_30263277的博客 75

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

poj1061 青蛙的约会(扩展欧几里得)

http://poj.org/problem?id=1061 题意:中文题,求青蛙跳多少次才可以碰面,碰面即约会。 思路:数论第一题。根据题意很容易得出这个周期问题的条件:(x+mt)-(y+nt) = kl。其中t代表跳了多少次,k代表相差多少圈,这两个都是未知数。变形一下得到(n-m)t+lk = x-y,这就相当于解ax+by = c的式子了。其中a = n-m,b = l,

Iguodala的博客 403

POJ1061 青蛙的约会

1 /* 2 POJ1061 青蛙的约会 3 http://poj.org/problem?id=1061 4 扩展欧几里得 5 6 原题为求t使得,存在l满足 7 (x+mt)-(y+nt)=cl 8 即求 9 cl+(n-m)t=x-y 10 * 11 * 12 * 13 */ 14 15 ...

dianan9456的博客 118

POJ1061 青蛙的约会(扩展欧几里得算法)

青蛙的约会 Time limit 1000 ms Memory limit 10000 kB Problem Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝...

mind_jia 248

poj 1061 青蛙的约会 【扩展欧几里得】

青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 99341   Accepted: 18926 Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面

世界很大 709

POJ 1061 青蛙的约会 笔记——扩展欧几里得

青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 123638 Accepted: 26379 Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重...

Triumphs的博客 560

POJ1061 青蛙的约会 扩展欧几里得

青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 138207 Accepted: 31164 Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方...

DouglasConnor的博客 197

poj 1061 青蛙的约会 扩展欧几里得算法

青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 81439   Accepted: 14063 Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面

停不下的脚步 748
上一篇: 求最小生成树(Prim算法)(1075)
下一篇: Java多线程之synchronized关键字
soldier_wing
博客等级 码龄11年 36粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值