1039 Course List for Student (25 point(s))

AIGC实战:用ComfyUI和Lora微调打造专属原神角色(含完整工作流) 本文详细介绍了如何利用ComfyUI和Lora微调技术打造专属原神风格角色,涵盖从环境配置、数据集准备到工作流构建和Lora训练的全过程。通过模块化节点设计和高级控制技术,创作者可实现高度个性化的AIGC艺术创作,提升二次元角色生成的效率与质量。 阅读详情

1039 Course List for Student (25 point(s))

Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists of all the courses, you are supposed to output the registered course list for each student who comes for a query.

Input Specification:

Each input file contains one test case. For each case, the first line contains 2 positive integers: N (≤40,000), the number of students who look for their course lists, and K (≤2,500), the total number of courses. Then the student name lists are given for the courses (numbered from 1 to K) in the following format: for each course i, first the course index i and the number of registered students N​i​​ (≤200) are given in a line. Then in the next line, N​i​​ student names are given. A student name consists of 3 capital English letters plus a one-digit number. Finally the last line contains the N names of students who come for a query. All the names and numbers in a line are separated by a space.

Output Specification:

For each test case, print your results in N lines. Each line corresponds to one student, in the following format: first print the student's name, then the total number of registered courses of that student, and finally the indices of the courses in increasing order. The query results must be printed in the same order as input. All the data in a line must be separated by a space, with no extra space at the end of the line.

Sample Input:

11 5
4 7
BOB5 DON2 FRA8 JAY9 KAT3 LOR6 ZOE1
1 4
ANN0 BOB5 JAY9 LOR6
2 7
ANN0 BOB5 FRA8 JAY9 JOE4 KAT3 LOR6
3 1
BOB5
5 9
AMY7 ANN0 BOB5 DON2 FRA8 JAY9 KAT3 LOR6 ZOE1
ZOE1 ANN0 BOB5 JOE4 JAY9 FRA8 DON2 AMY7 KAT3 LOR6 NON9

Sample Output:

ZOE1 2 4 5
ANN0 3 1 2 5
BOB5 5 1 2 3 4 5
JOE4 1 2
JAY9 4 1 2 4 5
FRA8 3 2 4 5
DON2 2 4 5
AMY7 1 5
KAT3 3 2 4 5
LOR6 4 1 2 4 5
NON9 0

模拟题。关键点:

1. 读入数据的时候,如果出现不存在姓名,要插入;

2. 查询中可能出现没有出现出现过的名字。

下面代码可能因评判机器的问题,存在玄学TLE的情况。本题的限制时间600ms,而该代码通过时间可能卡在包含该时间的某个区间内。

#include<iostream>
#include<map>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
const int MAX = 400007; 
map<string,int> mp;
string names[MAX];
vector<int> courses[MAX];
int main(void){
	int N,K,idx,num;
	int cnt = 0;
	string s;
	cin>>N>>K;//学生数、课程数 
	while(K--){
		cin>>idx>>num;
		for(int i=0;i<num;i++){
			cin>>s;int cur;
			if(mp.find(s)!=mp.end()){
				cur = mp[s];
			}
			else{
				mp.insert({s,cnt});
				names[cnt]=s;
				cur = cnt;
				cnt++;
			}
			courses[cur].push_back(idx);
		}
	}
	while(N){
		cin>>s;
		if(mp.find(s)!=mp.end()){
			int stu = mp[s];
			sort(courses[stu].begin(),courses[stu].end());
			int size = courses[stu].size();
			cout<<names[stu]<<" "<<size;
			for(int i=0;i<size;i++){
				cout<<" "<<courses[stu][i];
			}
			cout<<endl;
		} 
		else{
			cout<<s<<" "<<"0"<<endl;
		}
		N--;
	}
	return 0;
} 

 a. 可以AC的时候:

b. case#5出现TLE(23分)

改进:姓名散列

#include<bits/stdc++.h>
using namespace std;
vector<vector<int> >hashTable((int)1e6);//存储相应编号所指代的学生选的课,散列数组的大小尽量要开大一点
int strhash(const string&s){
    int k=0;
    for(int i=0;i<3;++i)
        k=k*26+s[i]-'A';
    k=k*26+s[3]-'0';
    return k;
}
int main(){
    int N,K;
    string name;
    scanf("%d%d",&N,&K);
    for(int i=1;i<=K;++i){
        int course,num;
        scanf("%d%d",&course,&num);
        while(num--){
            cin>>name;
            hashTable[strhash(name)].push_back(course);//让该整数下的vector存储选的课
        }
    }
    while(N--){
        cin>>name;
        int k=strhash(name);//将名字散列为一个整数
        printf("%s %d",name.c_str(),hashTable[k].size());//按要求输出
        sort(hashTable[k].begin(),hashTable[k].end());
        for(int i=0;i<hashTable[k].size();++i)
            printf(" %d",hashTable[k][i]);
        printf("\n");
    }
    return 0;
}

Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码) 本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py库,详细演示了如何读取HDF5文件结构、理解数据分类(如传感器、健康参数、场景描述符)并加载为Pandas DataFrame。文章还澄清了数据集中常见的变量数量疑惑,并给出了从数据加载到构建剩余使用寿命预测模型预处理流水线的完整代码,帮助工程师和研究人员高效入门航空发动机预测性维护分析。 阅读详情

相关推荐

【SerDes】美信GMSL2-CSI调试心得

美信GMSL2加解串器芯片家族广泛应用于车载和工业视觉系统。文章介绍了MAX96717/MAX96717F加串器和MAX96724/MAX96724R解串器的关键特性,包括支持MIPI CSI-2接口、6Gbps传输速率等功能。提供了基于高通平台的demo系统配置和调试步骤,重点阐述了Link Lock、PCLK检测和Video Lock等关键调试环节,并详细说明了像素模式,隧道模式的工作原理及寄存器配置示例。文中还包含通过I2C读写寄存器的具体操作指令,取流freeze可能原因和解决方法。

qq_38089448的博客 2498

【1039】Course List for Student(vector)

1.题目 https://pintia.cn/problem-sets/994805342720868352/problems/994805447855292416 给出N个学生,K门课。 给出每门课号,报名人数N, 给出N个学生的名字,最终要输出每个学生的名字及其选课数,和选得所有课程编号。 2.思路 读取数据将课程编号加入所有选择该课的学生中,最后依次输出每个学生的选课情况。 (1)学生通过姓名的方式给出; ——如果用STL的map实现姓名与学生编号的映射,最后一组数据过大,导致用map和string会

发现问题,并解决问题,批判性思维 1025

复习单片机:动态数码管(1 数码管介绍+2 74HC245 和 74HC138 芯片介绍+3 硬件设计+4 软件设计+5 实验现象)

复习单片机:动态数码管(1 数码管介绍+2 74HC245 和 74HC138 芯片介绍+3 硬件设计+4 软件设计+5 实验现象)

wo12369874的博客 1701

Course List for Student (25)

文章目录前言一、题目分析二、 需求分析1.输入分析2.输出分析3.功能分析4.测试数据三、概要设计 前言 《算法笔记》vector的使用 一、题目分析 具体题目见:http://codeup.hustoj.com/problem.php?cid=100000596&pid=0 大致题意:给定所有课程的学生名单和需要查询的学生名单,输出查询学生的课程表。 二、 需求分析 1.输入分析 每个输入文件一个测例。 第一行输入两个整数,查询课表的学生人数N(<=4000)和课程总数K(<=25

weixin_45090728的博客 339

24. 在QML界面中嵌入QWidget窗口

目前QT官方主推的界面开发方式是采用QML进行界面设计,但在QML未流行之前,很多的项目都是采用QWidget开发的,把之前的代码全部转换为QML代码显然工作量非常大,如果能将QWidget窗口嵌入到QML界面中,那么开发效率将提高很多,且QML无法实现的功能也能借助于QWidget框架进行实现。

山间点烟雨 5922

k8s中pod使用详解

k8s中Pod使用

congge 1万+

1039 Course List for Student(附详细注释,逻辑分析)

写在前面 Map封装数据,大数据量存在超时,待尝试 实现方法 字符串hash映射 vector整型数据封装数据,排序方便 熟练情况,10分钟内a题。 潜在风险点 运行超时导致测试点不通过 额外知识 字符串hash散列 测试用例 要码很多字,,, 11 5 4 7 BOB5 DON2 FRA8 JAY9 KAT3 LOR6 ZOE1 1 4 ANN0 BOB5 JAY9 L...

kngines 652

GEE:提取研究区 NDVI/LST/RVI 并进行时间序列线性插值填补缺失像素和Savitsky-Golay(SG)滤波平滑处理

养乐多_本文将介绍使用Landsat数据集,构建时间序列,并使用线性插值算法填补缺失数据,或者去云空洞,并进一步对完整的时间序列数据进行SG滤波处理。

养乐多的博客 3197

PAT甲级真题

1039 Course List for Student (25分) 题目链接 1.题目描述 题目的意思就是,给定一些课程和选该课程的学生的名字,要求最后输出每一位学生选的课程编号,并把课程编号按照从小到大的顺序排列。 2.思路分析:因为每个学生的名字具有唯一性,可以把名字映射为唯一的id,具体方法就是名字中的字母26,数字10,最后形成一个唯一确定的数字。然后用一个vector二维动态数组,存储...

qq_43060884的博客 301

【ArcGIS Pro微课1000例】0022:基于DEM进行流域分析生成流域图

填洼Fill,在进行水文分析后续操作前,首先要对DEM进行填洼,创建无凹陷点的DEM。在ArcGIS中使用的是八方向流量建模(D8算法),工具位于水文分析下的【流向】。填洼需要使用水文分析工具下的【填洼】。确定输入与输出即可。

智慧空间实验室 2753

2026软考中级-软件设计师笔记(送最新视频教程)

核心口诀:运控存输输(运算器、控制器、存储器、输入、输出)例题(2019年上半年):核心公式:数字签名流程:数字证书作用:死锁4个必要条件:死锁判断公式:处理策略:程序设计语言的四大核心成分:顺序表操作(时间复杂度):链表操作(时间复杂度):核心思想:频率高的字符用短编码,频率低的用长编码 → 最小化总编码长度构造步骤(贪心算法):前提:有序表(升序/降序) 步骤:时间复杂度:O(log₂n) 例:查找中核心思想:用哈希函数将关键字映射到存储位置 哈希冲突:不同关键字映射到同一位置 → 用链地址法或开放定址

36万+

1039 Course List for Student(25分)

直接用map<string,vector<int>>即可,学生-课程s的映射关系。给定几门课以及选了这几门课的人,然后求某某学生选的课包含哪些。

a131529的博客 188

Jenkins部署前后端分离项目最全图文教程(手把手教学)

最近Jenkins部署的热度比较高,于是就想出一篇关于我是如何使用Jenkins部署前后端分离项目的,本篇记录了我是如何一步一步去配置、搭建和部署的完整流程,每一行代码都进行了实测和讲解,通过图文的教学写成博客分享给大家!

黄团团的个人博客 4780

1039 Course List for Student (25 point(s))

1039 Course List for Student (25 point(s)) 题意 给出课程和该课程下面的学生信息建库,再给出请求查询的人名信息,来查询 该人名下面的所有课程,课程代码 增序输出 思路一: 用下面这种结构来存储。set 自动排序 map用来做人名映射。但是最后一个数据会超时。 map&amp;lt;string ,set&amp;lt;int&amp;gt;&amp;gt; 思路二: 由于题目给出了名字...

sologala的博客 453

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

1039 Course List for Student (25point(s))

1039 Course List for Student (25point(s)) Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists of all the courses, you are supposed to output the registered course list for each student who comes for a query. I

佳迪斯的博客 135

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

PAT A1039 Course List for Student (25point(s))

题目链接 注意点: 1.用map处理姓名会超时,只能用散列方式。 2.由于数据量很大,不能用二维数组的方式,需要用vector来减少空间消耗。 #include<cstdio> #include<cstring> #include<algorithm> #include<vector> using namespace std; const int M...

皮皮瓜的博客 149

1039 Course List for Student (25 point(s)) - C语言 PAT 甲级

设计思路: 1. 名字按照 26\*26\*26\*10 映射为数字,用 id 数组记录每个人的序号,序号按照每个人的出现次序依次递增; 2. 用结构体数组按照学生序号记录每位学生的选课情况; 1. 有 2500 门课,直接用 char c\[2500\] 记录绝对超内存,所以用 1 bit 记录一门课,需要用位运算; 2. 进行位运算时,可以把 char c\[313\] 看作 bit c\[313\]\[8\],两个维度的下标均从 0 开始,所以对于课程编号进行减 1 处理

有三只土豆 265

1039 Course List for Student (25分)

Input Specification:* Each input file contains one test case. For each case, the first line contains 2 positive integers: N (≤40,000), the number of students who look for their course lists, and K (≤2,500), the total number of courses. Then the student nam

qq_35841609的博客 209

1039 Course List for Student (25)(25 point(s)(cj)

1039 Course List for Student (25)(25 point(s)) Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists of all the courses, you are supposed to output the re...

Cute_jinx的博客 351

1039. Course List for Student (25) --map和set的用法(最后一个点超时)

#include #include #include #include #include #include #include #include #include #include using namespace std; map > mp; int main() { // freopen("in.txt","r" ,stdin); int N,K;

cry_admin的博客 325

1039 Course List for Student (25 分)哈希表的运用

题目 Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists of all the courses, you are supposed to output the registered course list for each student who com...

大山喵写博客的地方 765

1047 Student List for Course (25point(s))

Zhejiang University has 40,000 students and provides 2,500 courses. Now given the registered course list of each student, you are supposed to output the student name lists of all the courses. Input Specification: Each input file contains one test case. For

qq_43520447的博客 177

PAT 1039 Course List for Student (模拟)

1039. Course List for Student (25) 时间限制 200 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Zhejiang University has 40000 stud

凌风 3915

【PAT1039】 Course List for Student (25) Hash表

1039. Course List for Student (25) 时间限制 200 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Zhejiang University has 40000 stud

天堂人间 2216
上一篇: 1079 Total Sales of Supply Chain (25 point(s))
下一篇: 1108 Finding Average (20 point(s))
coderwait
博客等级 码龄9年 20粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值