UVA 356 Square Pegs And Round Holes

Fanuc机器人的坐标变换矩阵的研究2 一、Funuc用户坐标系的介绍 二、用户坐标系与世界坐标系的坐标转换 三、 以用户坐标系1为基础旋转变换后的用户坐标系 四、关于点的WPR的含义 4.1:点在用户坐标系和世界坐标系下的坐标关系 4.2 通过转换矩阵返回去推导WPR 阅读详情

题目:不难理解。见题目本身。

分析:
方法一:自己想了很久,用纯数学方法做的,还是没有计算机点思维。见草稿。在1/4圆内,算圆弧与坐标轴x=k(n-1>=k>=1)的交点的高h。h取整 就是红色长方形(点右侧)内的方格数,全加起来就是完全在圆内的方格数。而蓝色则是x向上取整后(点左侧),所包括的所有所求的方格 - n(内+碰,少了n个格子)。
方法二:判断1/4圆,每个方格对角线的格点A、B,分别到原点O的距离。
|AO| < R, |BO| < R说明方格在圆内。
|AO| > R, |BO| < R说明方格被碰到。
|AO| > R, |BO| > R 说明方格在圆外。

注意:1.输出时,有个诡异的地方,我反复看题目也不能明白ac的格式与题目所说的格式是一致的(老外的表达思维没能理解)。见代码
在这里插入图片描述
在这里插入图片描述
方法一

#include"stdlib.h"
#include"stdio.h"
#include"string.h"
#include"math.h"
int main()
{
    int n,k,a_quarter_segments,a_quarter_whole,a_quarter_touchandcontain,flag=0;
    double h[150],h2;
    while(scanf("%d",&n)==1)
    {

        a_quarter_whole=0;
        a_quarter_segments=0;
        a_quarter_touchandcontain=0;
        for(k=1; k<n; k++)
        {
            h2=(2*k-1)*n-k*k+0.25;
            h[k]=sqrt(h2);
        }
        for(k=1; k<n; k++)
        {
            a_quarter_whole+=(int)h[k];
            if((h[k]-(int)h[k])<1e-7)
            {
                a_quarter_touchandcontain+=(int)h[k];
            }
            else
                a_quarter_touchandcontain+=(int)h[k]+1;
        }
        a_quarter_segments=a_quarter_touchandcontain+n-a_quarter_whole;
        if(flag!=0) printf("\n");
        printf("In the case n = %d, %d cells contain segments of the circle.\n",n,4*a_quarter_segments);
        printf("There are %d cells completely contained in the circle.\n",4*a_quarter_whole);
        flag++;
    }
    return 0;
}

方法二1

#include <cstdio>
#include <string.h>
#include <cstdlib>
#include <cmath>
#include <ctgmath>
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
 
using namespace std;
//(0,0)到(m,n)距离的平方
int func(int m,int n){
    return m*m+n*n;
}
 
int main()
{
    //只需要考虑四分之一的区域
    int n;
    int count = 0;//计数,方便回车输出
    while (cin>>n) {
        int i,j;
        double r = (n - 0.5) * (n - 0.5);//半径的平方
 //       cout<<r<<endl;
        int neibu = 0;//内部
        int bianjie = 0;//边上
        //遍历所有格子的左下角
        for(i=0; i<=n-1; i++){
            for(j=0; j<=n-1; j++){
                //左下和右上都在r内部
                if( (func(i, j) < r) && (func(i+1, j+1) < r) ) neibu++;
                else if( (func(i, j) < r) && (func(i+1, j+1) > r)) bianjie++;
            }
        }
 //       cout<<neibu<<endl<<bianjie;
        if(count++) cout<<endl;
        printf("In the case n = %d, %d cells contain segments of the circle.\n",n,bianjie*4);
        printf("There are %d cells completely contained in the circle.\n",neibu*4);
    }
    return 0;
}
 

  1. 此代码来源 优快云博主Harder_LZA
    https://blog.youkuaiyun.com/surpasslll/article/details/69247606 ↩︎

Matlab 普通kriging(克里金)插值 阅读详情

相关推荐

Vensim系统动力学建模实战:从理论到仿真优化【案例详解】

本文详细介绍了Vensim在系统动力学建模中的实战应用,从基础理论到仿真优化全面解析。通过人口增长、供应链库存优化等典型案例,展示如何利用Vensim构建动态模型并进行参数优化,帮助读者掌握系统动力学建模的核心技术与实践技巧。

weixin_29231725的博客 476

UVA 356 || Square Pegs And Round Holes (圆能覆盖的格子数和边界穿过的格子数

上图为,n = 1,2,3; 可以观察出,圆边界穿过的格子数,就是蓝色正方形最外一圈的格子数: ( 2n-1 ) * 4 在推导圆覆盖的格子数的时候,我一开始想了圆的内接正方形。。 结果推出来的有误..n = 3 时就不能 用向下取整的正方形了。。 就把圆分四块暴力枚举。就ok了。 #include #include #include #inclu

野生 1926

Lm317电压源芯片制作电流源

还在找电流源芯片么?如何使用电压源芯片快速搭建电流源。

Ekko的博客 1万+

UVA, 356 Square Pegs And Round Holes

题目: 给一个n。构建一个2n*2n的方格。里面放一个半径为n的圆。求落在边上的和完全在内部的格子个数 注意:输出的时候。几组数之间有空行。最后一组后面没有 只需要算1/4的。由于对称性 #include #include #include #include #include #include #include #include #include using namesp

脚踏实地 832

Linux系统下奥比中光Astra Pro相机SDK部署与避坑指南

本文详细指导了在Linux系统下部署奥比中光Astra Pro深度相机SDK的全过程,涵盖系统准备、SDK安装、设备权限配置及常见问题排查。重点解析了USB设备规则配置这一关键步骤,并提供了Python与C++项目的集成方法,旨在帮助开发者快速完成相机配置,避免常见陷阱。

weixin_28455801的博客 299

RRAM/ Near Memory Computing (NMC) Survey - Reading Notes 0707

Reading Notes of Resistive Random Access Memory – Day 2 Chapter 3 RRAM Characterization and Modeling Overview of RRAM Physical Mechanism A general picture for the filamentary switching mechanism. Forming: 对本征RRAM样本,加电压VformingV_{forming}Vforming​,中间氧化层的O

Blog of Lucky H6 990

UVA 356 - Square Pegs And Round Holes

求圆的4分之1的结果乘4即可,比较点到圆心距离和半径代码如下:#include &lt;bits/stdc++.h&gt; using namespace std; int n; double A(int x,int y) { return sqrt((n-x)*(n-x)+(n-y)*(n-y)); } int main() { int n,a,b,i,j,flag=0; ...

liuxinyu666的博客 604

仿真每日一练 | Workbench下薄板疲劳分析

今天给大家介绍Workbench下薄板疲劳分析,采用稳态分析模块进行评估。完成求解后,插入疲劳工具,同时插入对应的寿命进行查看,如图7和图8所示。采用稳态分析模块,导入几何模型,效果如图1。添加固定约束与扭矩,同时添加转速如图4所示。主要包括7要素,对应的类型见图2。求解完成后查看应力,如图6所示。1-1-3、有限元系统模型构建。1-2-1、加载条件/边界条件。1-1-1、几何模型构建。1-1-2、材料定义。1-2-2、求解设置。1-3-1、查看结果。1-3-2、评估结果。1-3-3、修正结果。

ansysxuexizhe的博客 1071

UVa 356 - Square Pegs And Round Holes

题目:在一个2n*2n的网格中间画一个直径为2n-1的圆,问圆内部的格子以及和圆相交的格子个数。 分析:计算几何。分别计算出圆和每个整数横坐标的交点(xi,yi)。             ceil(yi)- ceil(yi-1)即为每列的相交格子个数,floor(yi)即为每列圆内格子个数。 说明:注意精度(⊙_⊙)。 #include #include #include #inc

小白菜又菜 2820

微信小程序 - 解决微信支付报错 requestPayment:fail no permission 原因分析及排查处理(支付失败出错,无法唤起支付弹框面板,微信支付API报错请求付款:失败无权限)

微信小程序,微信支付,支付报错,errMsg: "requestPayment:fail no permission",支付失败,支付权限没问题,微信小程序支付报错,检查了appid正确依旧不行,微信小程序支付异常,苹果ios手机,安卓手机,开发者工具模拟器,最新解决教程,小程序wx.requestPayment报错/无响应,小程序支付 requestPaym,微信小程序认证,真机运行,小程序微信支付提示错误,微信小程序里使用微信支付错误提示,微信小程序支付异常,微信支付弹框拉不起来,小程序支付api,都检

🏆 前端领域优质创作者 1万+

【WorkBuddy专栏50】代码开发技术体系深度分析——前端、后端、全栈、移动端、数据工程,WB和CODEBUDDY谁更擅长?

【WorkBuddy专栏50】代码开发技术体系深度分析——前端、后端、全栈、移动端、数据工程,WB和CODEBUDDY谁更擅长?

AI人人懂 237

Altium Designer 18 加工文件生成

重要信息: 生产商:嘉立创 GTL顶层线路top layer、 GBL底层线路bottom layer、 GTS顶层阻焊top solder、 GBS底层阻焊bottom solder、 GTO顶层字符top overlay、 GBO底层字符bottom overlay、 DRL钻孔层、 GKO禁止布线层) GDD一般不用,分孔图,用来标注和分辨孔的大小位置 xxx.TXT钻孔...

ALLUN1的博客 1972

麒麟V10安装图形化界面

在配置VNC时发现,原本麒麟V10系统最小化安装,导致无图形化界面,先需要对其进行安装。 首先确保无图形化界面,可以在终端输入startX命令查看是否报错。 安装介绍: 1、 安装图形化界面 yum grouplist //查看可用yum安装组 注:这里一般会有缺少包或者出现包不符合的问题 导入软件包分组信息文件xxxx-comps.xml arm: 将此文件传送到源服务器, 然后createrepo -g导入到arm的base目录和updates目录 createrepo -g e33dc

Pro_jhf的博客 8071

UVA 356 Square Pegs And Round Holes

给你n,让你求2n*2n的半径为2n-1的圆里面有多少个格子还有多少个格子被圆的线盖着。 开始以为有公式,结果自己画图来看,园内格子数不符合公式T T 。。不过最多就150,套两层循环求格子数就好了。 #include #include #include #include #include #include #include #include #in

小媛在努力~ 2229

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

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

OV9734 DATASHEET,完整规格书

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

UVa 356 Square Pegs And Round Holes

这道题目要求计算在2n×2n棋盘中,直径为2n-1的圆所覆盖的格子数量。具体分为两部分:包含圆弧段的格子和完全位于圆内的格子。利用对称性,只需计算第一象限的格子数再乘以4。包含圆弧段的格子数恒为(2n-1)×4。完全位于圆内的格子通过判断每个格子的右上顶点是否在圆内来确定。代码中采用整数运算避免浮点误差,遍历第一象限的格子进行统计,最后输出结果。该算法高效且利用了问题的几何对称性。

寂静山林 191

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

UVA 356 - Square Pegs And Round Holes

题目:在一个2n*2n的网格中间画一个直径为2n-1的圆,问圆内部的格子以及和圆相交的格子个数。 思路:只要考虑1 / 4圆的点就行,用点到原点距离与半径比较,当格子左下方和右上方都在格子里时,格子在圆内部。 AC代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 int sqr(int n, in...

weixin_30698297的博客 201

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

UVA356 LA5250 Square Pegs And Round Holes【计算几何】

A circle 2n − 1 units in diameter has been drawn centered on a 2n by 2n chessboard. The construction for n = 3 is illustrated below.     Write a program that will determine the number of cells of the board which contain a segment of th

海岛Blog 575

UVA 356 SquarePegs And Round Holes(点到圆心的距离)

UVA 356  SquarePegs And Round Holes(点到圆心的距离) http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=5&page=show_problem&problem=292 题意:        一个直径为2*n-1单位长度的圆被画在了2n*2n的网格棋盘中

code 1639

UVa OJ 题解索引

寂静山林 746

py怎么运行_根据yaml测试用例自动生成py文件

一、目前使用的接口自动化框架在编写测试用例时,需要编写yaml文件,然后在写对应的脚本文件,每个接口的py文件,大同小异,在前面几天的编写的过程中,感觉很繁琐于是就产生了能不能根据编写完毕的yaml文件自动生成py文件的想法,经过一番功夫,终于搞定,说明如下:二、根据固定格式编写yaml测试用例文件1、yaml文件名字格式:2、yaml内容格式:三、yaml文件编写完毕后,运行common文件下c...

weixin_39930671的博客 485

AD21下 Gerber文件的理解和导出

AD21下对 Overlay solder等各图层的理解,以及Gerber、钻孔文件的导出

yt的博客 1万+

Altium生成Gerber及CAM350、DFM检查

完成 PCB板图的设计并交给供应商进行打样或是量产时,一般不会直接给供应商 PCB源文件,那就需要生成 Gerber文件。那么如何生成 Gerber文件及用 CAN350软件或华秋DFM 进行检查。

让你爱上电路设计 1万+

UVA 1386 cellular automaton [循环矩阵+矩阵快速幂]【数学】

题目链接 : 太长了_传送阵<<–————————————. A cellular automaton is a collection of cells on a grid of specified shape that evolves through a number of discrete time steps according to a set of rules that describ

Tabris的博客 1377

UVa10356 - Rough Roads(Dijkstra)

After he bought the tri-cyclelast year, Shaon went to visit his grandfather's house in a remote part of Bangladesh.He wanted to ride the cycle in quiet, rush-free rural roads. But when hereached the g

多看多听多总结 1987

UVa 11094 - Continents

题目:有一些岛屿在湖中,地图用两种字符表示,当前处在位置是一个岛屿,求除了当前岛屿外的最大岛屿。 分析:图论,floodfill。直接利用dfs求联通部分的面积即可,然后取出最大。 说明:横线没有边界,初始的岛屿不算在内。╮(╯▽╰)╭。 #include #include #include #include using namespace std; char maps[22][

小白菜又菜 1525

Square Garden UVA - 12520

有点复杂的一道题目,对于任意的一个正方形网格,首先考虑当要填充的正方形个数较小的时候,填充n个正方形,产生的新的边数即为4*n;如果填充的正方形的个数太多的时候,我们就首先计算出填充了n个正方形之后有多少个未填充空格,假设为k个,同时假设当前正方形上下去掉一行左右去掉一列之后最优的填充策略是填充t个,现在就利用一个逆向思维,假设当前是填入k个空格到中心的那个正方形,如果k #include #i

zju2016的博客 616
上一篇: UVA 343 What Base Is This?
下一篇: UVA 357 Let Me Count The Ways
要身心健康
博客等级 码龄8年 11粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值