背包问题

动态规划之01背包问题及leetcode实例 01背包问题 这篇文章讲的很清楚,我这里就不赘述了。 https://www.cnblogs.com/Christal-R/p/Dynamic_programming.html leetcode problem 416 描述 Given a non-empty array containing only positive integers, find if the array 阅读详情

1.  01背包

为题描述:s件物品, 背包容量为  m  ,给出每件物品的cost,与 value 求在背包容量内最大的价值是多少?

 
void pack_01(int weight,int value)
{
    for(int i=背包容量;i>=weight;i--)
        dp[i]=max(dp[i],dp[i-weight]+value);
}

int DP()
{
    for(int i=0;i<物品件数;i++)
        pack_01(weight[i],value[i]);
    return dp[背包容量];
}

 
2.完全背包 

物品件数为正无穷的背包

scanf("%d",&n);
for(i=0; i<n; i++)
{
    scanf("%d%d",&p,&w);
    for(j=w; j<=m; j++) //与01背包相比倒过来
    {
        dp[j]=max(dp[j],dp[j-w]+p);    // dp[i] 表示i容量的背包最多装的价值。
    }
}


3.多重背包


int v[10],dp[MM];
int sum;
void pack01(int weight,int val)
{
    int i;
    for(i=sum; i>=weight; i--)
        dp[i]=max(dp[i],dp[i-weight]+val);
}
void packcomplete(int weight,int val)
{
    int i;
    for(i=weight; i<=sum; i++)
        dp[i]=max(dp[i],dp[i-weight]+val);
}
void packmul(int weight,int val,int coutt)
{
    if(weight*coutt>=sum)  
    {
        packcomplete(weight,val);
        return ;
    }
    int k=1,tot=0;;
    while(k<coutt)   //二进制优化
    {
        pack01(k*weight,k*val);
        coutt-=k;
        k=k*2;
    }
    pack01(coutt*weight,coutt*val);
}
void DP()
{
    int i;
    for(i=0; i<=sum; i++)
        dp[i]=-INF;
    dp[0]=0;
    for(i=1; i<=6; i++)
    {
        packmul(i,i,v[i]);
    }
}


杭电题目  题目链接>点这里打开<


AC代码

#include<iostream>
#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<string.h>
#include<stack>
#include<queue>
#include<vector>
#include<stdlib.h>
#include<map>

using namespace std;
const int INF=10000000;
const int MM=60005;

int v[10],dp[MM];
int sum;
void pack01(int weight,int val)
{
    int i;
    for(i=sum; i>=weight; i--)
        dp[i]=max(dp[i],dp[i-weight]+val);
}
void packcomplete(int weight,int val)
{
    int i;
    for(i=weight; i<=sum; i++)
        dp[i]=max(dp[i],dp[i-weight]+val);
}
void packmul(int weight,int val,int coutt)
{
    if(weight*coutt>=sum)
    {
        packcomplete(weight,val);
        return ;
    }
    int k=1,tot=0;;
    while(k<coutt)
    {
        pack01(k*weight,k*val);
        coutt-=k;
        k=k*2;
    }
    pack01(coutt*weight,coutt*val);
}
void DP()
{
    int i;
    for(i=0; i<=sum; i++)
        dp[i]=-INF;
    dp[0]=0;
    for(i=1; i<=6; i++)
    {
        packmul(i,i,v[i]);
    }
}
int main()
{
    int ncase=0;
    while(1)
    {
        int i;
        ncase++;
        sum=0;
        for(i=1; i<=6; i++)
        {
            cin>>v[i];
            sum+=i*v[i];
        }
        if(!sum) break;   //如果全是0  程序结束
        printf("Collection #%d:\n",ncase);
        if(sum%2==1)  //总和为奇数个数则不可能评分
        {
            printf("Can't be divided.\n\n");
            continue;
        }
        sum=sum/2;  //背包容量减半
        DP();
        if(dp[sum]>=0)
            printf("Can be divided.\n\n");
        else
            printf("Can't be divided.\n\n");
    }
    return 0;
}



背包问题汇总 详细解析参考“背包九讲”:https://github.com/tianyicui/pack 目录 1. 背包问题 I ——0-1背包无价值 2. 背包问题II ——0-1背包有价值 3. 背包问题III —— 完全背包问题 小结1 4. 背包问题IV /V ——求方案数 5. 背包问题VII —— 多重背包问题 6. 多重背包可行性解 7. 换零钱问题 1. 背... 阅读详情

相关推荐

树上背包问题

树上背包问题树上背包问题算法原理例题一:有依赖的背包问题题意数据范围思路代码例题二:二叉苹果树题意数据范围思路代码例题三:Factories(2018icpc宁夏网络赛)题意数据范围思路代码 树上背包问题 一些题目给定了树形结构,在这个树形结构中选取一定数量的点或边(也可能是其他属性),使得某种与点权或者边权相关的花费最大或者最小。解决这类问题,一般要考虑使用树上背包。 算法原理 树上背包,顾名思义,就是在树上做背包问题。一个节点的若干子树可以看作是若干组背包,也就是用树形dp的方式做分组背包问题。一般来说

心升明月的博客 5833

Leetcode中的背包问题

细心的同学可能发现,全文我说的都是对于纯完全背包问题,其for循环的先后循环是可以颠倒的!但如果题目稍稍有点变化,就会体现在遍历顺序上。Leetcode518.零钱兑换II本题的递推公式,其实我们在动态规划目标和!中就已经讲过了,而难点在于遍历顺序!在求装满背包有几种方案的时候,认清遍历顺序是非常关键的。如果求组合数就是外层for循环遍历物品,内层for遍历背包。如果求排列数就是外层for遍历背包,内层for循环遍历物品。httpshttpshttpshttpshttps。...

yang_yi520的博客 1547

分子对接中的相互作用特征分析(目视筛查)

介绍分子对接的相互作用特征,以及如何通过这些特征进行目视筛查

recher_He1107的博客 5761

LeetCode常见题型——背包问题

背包问题:有N 个物品和容量为W 的背包,每个物品都有自己的体积w 和价值v,求拿哪些物品可以使得背包所装下物品的总价值最大。

贫道绝缘子的博客 3449

若依RuoYi文件上传漏洞实战:如何安全配置/profile/upload路径(附避坑指南)

本文深入解析若依RuoYi框架中/profile/upload路径的文件上传漏洞,提供详细的安全配置方案和实战指南。通过权限修正、输入验证强化和存储隔离等多层防御策略,有效防范未授权访问和恶意文件上传风险,保障系统安全。

pink的博客 781

保姆级教程:在Windows 10/11上安装配置KNIME 5.8.0(含中文文本库更新)

本文提供在Windows 10/11系统上安装配置KNIME 5.8.0的详细指南,包括中文文本库更新和性能优化方案。从环境准备、安装流程到中文文本处理能力强化,逐步指导用户搭建高效的数据分析环境,特别针对国内网络环境和中文用户需求提供实用解决方案。

weixin_29081101的博客 670

令人头疼的背包九讲(2)完全背包问题

点击上方“Jerry的算法和NLP”,选择“星标”公众号 重磅干货,第一时间送达 背包问题是一个经典的动态规划模型。它既简单形象容易理解,又在某种程度上能够揭示动态规...

Jerry的编程之路 307

WinForm轻松打造AntDesign现代化工具栏

摘要: 本文介绍如何在WinForm中利用AntdUI库实现AntDesign风格工具栏,包括安装配置、动态生成按钮/下拉菜单、布局优化及主题美化。通过AntButton、AntDropdown等控件结合事件绑定,可快速构建支持图标、工具提示、权限控制的现代化工具栏,并解决常见图标加载、布局错乱问题。最后提供代码示例与响应式设计技巧,助你打造高效美观的WinForm界面。 (字数:150)

java专栏 1594

MATLAB 背包问题

本文介绍了 MATLAB 中的背包问题,包括 0-1 背包问题、完全背包问题、多重背包问题等。

小嗷犬的博客 4583

公开 学生课堂行为数据集 SCB-Dataset: A Dataset for Detecting Student and Teacher Classroom Behavior

公开 学生课堂行为数据集 SCB-Dataset Student Classroom Behavior dataset

CSPhD-winston的博客 1万+

华为面试手撕真题【最长不重复子串】

给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。

MISAYAONE的博客 1万+

【动态规划算法】背包问题——0/1背包问题,多目标优化背包问题详解与示例

背包问题是动态规划中的一个经典问题,通常有两种主要变种:0/1 背包问题和背包问题(Fractional Knapsack Problem)。这里我们先详细解释0/1背包问题再介绍背包问题的变种。

qq_35831906的博客 1万+

EMD (经验模态分解) 在 C++ 中的实现指南

EMD 是由 Norden E. Huang 等人在1998年提出的一种适用于非线性和非平稳信号的分析方法。对称性:IMF 的上下包络对称。零交叉点:IMF 的零交叉点数量与极值点数量相同或相差一个。本文详细介绍了如何在C++中实现EMD,包括理论背景、算法步骤、代码实现和优化等内容。通过丰富的代码示例和详细的解释,希望能够帮助读者掌握EMD的基本原理,并能够在实际项目中灵活应用。未来,随着信号处理技术的不断发展,EMD及其变种(如EEMD、CEEMDAN等)将继续在各个领域发挥重要作用。

qq_38334677的博客 1750

背包问题总结

前面是转载来的背包9讲,非常详细,后面有几个lintcode上的题目 前言 本篇文章是我(dd_engi)正在进行中的一个雄心勃勃的写作计划的一部分,这个计划的内容是写作一份较为完善的NOIP难度的动态规划总结,名为《解动态规划题的基本思考方式》。现在你看到的是这个写作计划最先发布的一部分。 背包问题是一个经典的动态规划模型。它既简单形象容易理解,又在某种程度上能够揭示动态规划的本质,故不少...

William Zhao's notes 2万+

十年芯片资深IC设计工程师面经系列(四)SDC约束

set_driving_cell:当我们的设计是模块级(Block level)的design时,我们的设计前面一般还有其他的设计,那么前面模块的输出便是我们模块的输入,5.1set_false_path:可以单独的时钟或者路径进行约束。set drive :当我们的设计是芯片级(Chip level)的顶层设计时,芯片外围电路要驱动的是负载较大的IO单元,故需要的驱动能力较强,:set_load 是指output端口的负载,设置的值会影响输出到端口的net上的电容,从而影响相应的路径延时。

weixin_47349046的博客 1773

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

01背包问题

01背包问题 商店的货架上摆放着不同重量和价值的商品,一个小偷在商店行窃,他携带的背包只能装固定重量的商品。装哪些商品才能获得最大的收益呢?在限定条件内找到最佳的物品组合,这样的问题统称为背包问题。 根据限定的条件不同,背包问题还可以细分: 部分背包问题:所有物品是可再分的,即允许将某件物品的一部分(例如 1/3)放入背包; 0-1 背包问题:所有物品不可再分,要么整个装入背包,要么放弃,不允许出现“仅选择物品的 1/3 装入背包”的情况; 完全背包问题:不对每一件物品的数量做限制,同一件物品可以选择多个装

ccc369639963的博客 2万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

经典背包问题

一、背包问题的描述 背包问题可以有多种形式,下面将对其逐一进行描述: (1)经典的0-1背包问题(无物品的价值): 假设有一个能装入容量为C的背包和n件重量分别为w1,w2,,...,wn的物品,能否从n件物品中挑选若干件恰好装满背包,要求找出所有满足上述条件的解。 当C=10,各件物品重量为{1,8,4,3,5,2}时,可以找到下列4组解:(1,4,3,2)、(1,4,5)、(8,...

qq_40427276的博客 5208

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

深度学习工具包 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")

【dp】背包问题

背包问题是⼀种组合优化的问题。问题可以描述为:给定⼀组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。01背包问题:每个物品只有⼀个完全背包问题:每个物品有无限多个多重背包问题:每件物品最多有 x 个混合背包问题:每个物品会有上面三种情况分组背包问题:物品有 n 组,每组物品里有若干个,每组里最多选⼀个物品不一定装满背包背包一定装满限定条件只有⼀个:比如体积 -> 普通的背包问题限定条件有两个:比如体积 + 重量 -> 二维费用背包问题。

YoungMLet的博客 2204

【动态规划】背包问题 {01背包问题;完全背包问题;二维费用背包问题}

【动态规划】背包问题 {01背包问题;完全背包问题;二维费用背包问题}

52Herzt的博客 5527

01背包问题VS完全背包问题

01背包问题: 每个物品只能选择一次,给定背包的最大承重量total和每个物品i的重量weight[i]和价值value[i],求背包可以装下的最大价值 #include<iostream> #include<vector> using namespace std; int main() { int num, total; cin >> num &...

weixin_40679061的博客 3975

背包问题模型总结

背包模型总结汇总。

涛涛的个人博客 4660

【背包问题】二维费用的背包问题

常规的0-1背包问题可以用动态规划来解决,状态通常是dp[i][j]表示前i个物品,在容量j下的最大价值。对于二维费用的情况,可能需要扩展状态到两个维度。比如,状态可能是dp[i][j][k],表示前i个物品,在重量限制j和体积限制k下的最大价值。但这样的话,状态空间会变得很大,尤其是当j和k都较大的时候,时间和空间复杂度可能很高。不过,可能可以通过优化来减少空间的使用,比如使用滚动数组。

2401_82677021的博客 1161

几种背包问题总结

01背包问题(物品选不选) 完全背包问题(物品无限选) 多重背包问题(物品个数有限制且不同) 混合背包问题 二维费用的背包问题(重量+体积) 分组背包问题(先分组,组内互斥) 背包问题求方案数 一般是价值,这里是方案数 求背包问题的方案 有依赖的背包问题 ...

tianyouououou的博客 4311

关于背包问题

有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。

2401_87732330的博客 1070

完全背包问题

问题: 有n个重量和价值分别为wi,vi的物品,从这些物品中挑选出总重量不超过W的物品,求所有挑选方案中价值总和的最大值 1≤n≤100 1≤wi,vi≤100 1≤W≤10000 思考: 其实这个问题01背包问题的区别在与,这里的每个物品都是可以重复取的。而01背包问题就只能取一次; 在原01背包问题中: 递推式为: dp [ i ] [ j ] = max( dp[ i-1 ] [ ...

Johnson_Z 1634
上一篇: 容斥原理
下一篇: 欧拉函数
Code--Dream
博客等级 码龄11年 53粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值