- 华为机试HJ16:购物单 系统的动态规划设计思路 剖析Java最优解代码
_JC_Chris
华为动态规划java算法数据结构
0.写在前面“华为机试HJ16:购物单”是一道“物品间有依赖关系”的【01背包问题】,属于经典dp问题的变形。对于基础薄弱的同学来说,本题的思维难度不低,建议先了解“普通01背包问题”的基本求解思路——bilibili辅助学习视频(预计学习时间15min)1.题目描述王强决定把年终奖用于购物,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件附件电脑打印
- tcp/ip协议中ip层协议,tcp/ip协议中ip协议属于
zzyh123456
tcp/ip网络网络协议
在TCP/IP协议栈中,IP(InternetProtocol)协议属于网络层(NetworkLayer)。TCP/IP协议栈是一个四层架构,从上到下依次为:应用层(ApplicationLayer):这一层提供了应用程序间通信的接口,如HTTP、FTP、SMTP等协议都在这一层。传输层(TransportLayer):这一层负责应用程序之间的数据传输,包括面向连接的TCP(Transmissio
- ES6——Set集合和Map集合练习题
阿常11
es6前端ecmascript
根据前一篇文章,让ai给我们出下面的练习题:Set练习题创建一个Set并添加数字1到10,然后将其转换为数组并打印。编写一个函数,接收一个数组作为参数,返回一个新的数组,新数组只包含原数组中唯一的元素(去重)。创建一个Set,添加多个元素,然后使用delete方法移除特定元素,打印剩余元素的数量。使用for...of循环遍历一个Set,打印每个元素。将一个数组转换为Set,然后添加一个新元素,再转
- 计算机网络的5层结构和7层对应关系,计算机网络的7层、4层和5层模型
一条胖咸鱼
在计算机网络的基本概念中,分层次的体系结构是最基本的。分层的主要好处有:1、各层之间是独立的,每一层向上和向下通过层间接口提供服务,无需暴露内部实现2、灵活性好3、结构上可分割4、易于实现和维护5、能促进标准化工作OSI7层模型为了使全世界不同体系结构的计算机能够互联,国际化标准组织ISO提出开放系统互联基本参考模型,简称OSI,即所谓的7层协议体系结构。7层模型从上到下包含:应用层、表示层、会话
- vite build报错 Unexpected token (Note that you need plugins to import files that are not JavaScript)
实践是最好的老师
vuejavascript前端vue.js
原因是我在console.log语句想打印出环境变量console.log(‘import.meta.env.MODE’,import.meta.env.MODE)删除上面console.log语句就能正常打包了,并下面语句能正常打包和运行constconfig:any={dev:{baseUrl:‘http://baiduTest.com’//测试接口域名},master:{baseUrl:‘h
- Vue.js组件开发-Vue实现上传word模版打印设置自定义样式和布局
LCG元
前端vue.jsword前端
要使用Vue实现上传Word模板、打印并设置自定义样式和布局,可以借助一些工具和库来完成这个任务。实现步骤创建Vue项目:使用VueCLI创建一个新的Vue项目。安装依赖:安装docx-templates库来处理Word模板,file-saver库用于保存生成的Word文件。创建上传组件:在Vue组件中添加文件上传功能。处理Word模板:使用docx-templates库加载并处理Word模板。设
- 【开发日记】微信小程序getBackgroundAudioManager播放背景音乐提示播放失败
二饭
微信小程序小程序
【问题】小程序在手机上打开,播放在线音频的时候会提示播放失败,但打印异常提示的是src为null,自己在打印的时候却没问题。并且在微信开发者工具中播放的时候也是正常的,只有手机上打开使用时提示异常。【解决】如果你的链接中包含中文字符,请使用encodeURI(src)进行编码处理。示例代码如下:letsrc=this.data.host+this.data.previewUrl+this.data
- leetcode 124. 二叉树中的最大路径和
fks143
leetcodeleetcode
题目:124.二叉树中的最大路径和-力扣(LeetCode)定义一个节点的“最大单向路径和”是single,single有以下几种情况:只有该节点该节点+左儿子的single该节点+右儿子的single设答案是节点node为根节点,有以下几种情况:只有根节点根节点+左儿子的single根节点+右儿子的single根节点+左儿子的single+右儿子的single遍历全部节点,即可找到最大的答案cl
- 算法:实现回文数
Bunury
java算法
给你一个整数x如果是一个回文整数,打印true,否则,返回false解释:回文数是指正序(从左向右)和倒序(从右到左)读都是一样的整数例如:121是回文,而123不是importjava.util.Scanner;publicclassdome2{publicstaticvoidmain(String[]args){System.out.println("HelloWorld2222");//回文
- python爬虫实战
山猪
人工智能教学python爬虫开发语言
python爬虫实战1.爬取知乎某页html#导入urllib库的urlopen函数fromurllib.requestimporturlopen#发出请求,获取htmlhtml=urlopen("https://zhuanlan.zhihu.com/p/77560712")#获取的html内容是字节,将其转化为字符串html_text=bytes.decode(html.read())#打印ht
- 如何设置AD域用户仅登录到指定的计算机?AD域管理软件
ad前端
一什么是AD域?简单理解:ActiveDirectory域内的directorydatabase(目录数据库)是被用来存储用户账户、计算机账户、打印机和共享文件夹等对象,而提供目录服务的组件就是ActiveDirectory(活动目录)域服务(ActiveDirectoryDomainService,ADDS),它负责目录数据库的存储、添加、删除、修改与查询等操作。一般适用于一个局域网内。在AD域
- 使用 Pyro 和 PyTorch 的贝叶斯神经网络
无水先生
人工智能综合Pytorch和项目实践pytorch人工智能python
一、说明构建图像分类器已成为新的“helloworld”。还记得当你第一次接触Python时,你的打印“helloworld”感觉很神奇吗?几个月前,当我按照PyTorch官方教程并为自己构建了一个运行良好的简单分类器时,我也有同样的感觉。
- set判重与map判重(C++)
怼您恏1031
c++开发语言
set判重set可以理解为一个不重复且有序的集合,实现原理红黑二叉树。一般我们对与set的使用集中在以下几种操作:1.声明或创建set集合2.插入操作3.删除操作4。判断集合中是否有元素5.返回集合中元素的个数6.遍历整个集合。具体代码:#includeusingnamespacestd;intn,m;//建立setintset;setstringset;intmain(){strings1="测
- 数据结构考前一天
蒟蒻的贤
数据结构
线性表:矩阵,链表(单链表必考)栈和队列:出入判断,括号匹配,中缀转后缀字符串数组:模式匹配next,nextval数组,数组寻址,三角矩阵对应一维数组k,二叉树:二叉链表,求叶子数量,求深度,左右转换,前中后遍历,森林与二叉树转化,哈夫曼树,哈夫曼编码,图:DFS,BFS,邻接矩阵,邻接表(EdgeNode,VertexNode),最小生成树(prime加点,kruskal加边),最短路径(di
- python实现通讯录管理系统
游鲁超up
python开发语言后端
n=[]print("欢迎使用通讯录管理系统V2.0")print("[1]增加学员信息")print("[2]删除学员信息")print("[3]打印学员信息")print("[4]退出系统")whileTrue:#死循环a=int(input('请输入您要进行的操作编号1~4:'))ifa==1:c=int(input("请输入你的学号:"))b=input("请输入你的姓名:")d=int(
- 二叉树的层次遍历
byg_qlh
算法数据结构算法数据结构
二叉树的层次遍历描述给你一个二叉树,请你返回其按层次遍历得到的节点值(即逐层地,从做到右访问所有节点)代码通过两个数组来交替打印classSolution(object):deflevelOrder(self,root):ifroot==None:return[]stack=[root]secondStack=[]ret=[[root.val]]whilestackorsecondStack:te
- 通讯录模块代码
fang6zhi
python
#1、封装一个menu函数,专门用于打印选择界面菜单defmenu():print('-'*40)print('通讯录管理系统V1.0')print('1、添加学员信息')print('2、删除学员信息')print('3、修改学员信息')print('4、查询学员信息')print('5、遍历所有学员信息')print('6、退出系统')print('-'*40)#6、定义一个全局变量info=
- 数据结构——查找二叉树
xb1132
数据结构算法
二叉搜索树的概念如图所示,二叉搜索树(binarysearchtree)满足以下条件。对于根节点,左子树中所有节点的值num,说明目标节点在cur的左子树中,因此执行cur=cur.left。若cur.val=num,说明找到目标节点,跳出循环并返回该节点。二叉搜索树的查找操作与二分查找算法的工作原理一致,都是每轮排除一半情况。循环次数最多为二叉树的高度,当二叉树平衡时,使用O(logn)时间。
- C语言逆序输出整数
素玉禅心
C语言基础题c语言
目录1.题目2.分析3.完整代码1.题目输入一个正整数,逆序打印这个整数的每一位。例如:输入:1234输出:4321输入:521输出:1252.分析以1234为例,按照题目要求,我们需要先打印出4,再打印出3、2、1。所以,我们先思考,如何打印出1234的最后一位数字4呢?这个时候,我们可以联想一下,我们学过哪些运算符?不难想到,我们所知的运算符有:+、-、*、/、%等等。剧透一下,我们这道题,正
- 代码随想录算法训练营第十五天| 二叉树3
Rachela_z
算法
110.平衡二叉树(优先掌握递归)再一次涉及到,什么是高度,什么是深度,可以巩固一下。题目链接/文章讲解/视频讲解:代码随想录状态:要辨别新增函数的位置,self的用法二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数,从上往下数二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数,从下往上数#Definitionforabinarytreenode.#classTreeNode:
- 连通区域计算
选与握
#图像处理
(一)two-pass四邻域连通区域计算1、先将图像二值化2、第一次按行扫描图像时,图像中的每个像素值从上到下,从左到右扫描,给每一个有效的像素值一个标签label,规则如下:(1)如果该像素的4邻域中左边像素值和上边像素值都为0且都没有标签,则给该像素一个新的标签label(2)如果该像素的4邻域中左边像素值或上边像素值有一个为1,则该像素的标签是像素值为1的标签(3)如果该像素的4邻域中左边像
- 力扣111 二叉树的最小深度
想念@思恋
leetcode
#层次遍历classSolution:defminDepth(self,root:TreeNode)->int:ifrootisNone:return0queue=[]layer=[]cur=rootqueue.append(cur)layer.append(1)min_layer=1cur_layer=1whilequeue:cur=queue.pop(0)cur_layer=layer.pop
- 数据结构——二叉树的最小深度算法
943802606
#数据结构数据结构二叉树c语言
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。输入:root=[3,9,20,null,null,15,7]输出:2示例2:输入:root=[2,null,3,null,4,null,5,null,6]输出:5提示:树中节点数的范围在[0,105]内-1000lchild不为空且T->rchild为空,返回左子树的高度+
- 111.二叉树的最小深度 -----力扣每日打卡Day17
爱吃草莓蛋糕的猴
算法题二叉树算法leetcode
目录1.题目2.题目分析3.代码实现1.题目给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],3/\920/\157返回它的最小深度2.C语言函数头:/***Definitionforabinarytreenode.*structTreeNode{*intval
- leetcode——搜索二维矩阵II(java)
gentle_ice
leetcode矩阵算法java
编写一个高效的算法来搜索*m*x*n*矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例1:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],target=5输出:true示例2:输入:matrix=
- 力扣刷题--111、二叉树的最小深度
莫等闲,白了少年头
LeetCode算法javaLeetCode二叉树的最小深度
题目:二叉树的最小深度题号:111难易程度:简单题面:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例1输入:root=[3,9,20,null,null,15,7]输出:2示例二:输入:root=[2,null,3,null,4,null,5,null,6]输出:5题目意思:即题面。题解:题解:1、分成四种情况。第一
- 在每棵树中找最大值
嘻嘻哈哈樱桃
算法二叉树算法
目录题目思路代码题目给定一棵二叉树的根节点root,请找出该二叉树中每一层的最大值。示例1:输入:root=[1,3,2,5,3,null,9]输出:[1,3,9]示例2:输入:root=[1,2,3]输出:[1,3]思路同力扣102,层序遍历,取每一层的最大值代码classSolution{publicListlargestValues(TreeNoderoot){Listresult=newA
- Java基础——函数(方法)
AYANGIJ
java开发语言intellij-idea
函数的出现在目前为止的开发实现中,我们的代码都在main方法中,从上到下进行编写。在此模式下,程序结构会随着功能复杂度的增加而越来越复杂。在代码中会有不连续的出现重复性代码,无法用循环解决。为了简化代码以及程序的结构,把这些不连续的重复性代码提取出来,封装为一个方法(函数),并且为之取名。在需要用到该方法(函数)代码的位置去调用该方法(函数)。方法(函数)初步出现,函数出现之后,有一些显而易见的好
- 总结8..
挽清和
c语言
#include//定义结构体表示二叉树节点,包含左右子节点编号structnode{intl;intr;}tree[100000];//全局变量记录二叉树最大深度,初始为0intans=0;//深度优先搜索函数//pos:当前节点在数组中的位置,deep:当前深度voiddfs(intpos,intdeep){//若为叶子节点if(tree[pos].l==0&&tree[pos].r==0){
- python无法启动此程序因为_(python shell怎么用)为啥我按照python安装教程,总说无法启动此程序,因为计算机中丢失?...
weixin_39540023
python无法启动此程序因为
python3.8遍历整个列表?你打印的是colorprint(color)不对应该是magician为啥我按照python安装教程,总说无法启动此程序,因为计算机中丢失?这是你windows操作文件丢失的,和python无关。首先去网上搜索下载api-ms-win-crt-process-l1-1-0.dll文件载完毕后,把dll文件放到C:\Windows\System32下即可。如果下载的d
- Algorithm
香水浓
javaAlgorithm
冒泡排序
public static void sort(Integer[] param) {
for (int i = param.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
int current = param[j];
int next = param[j + 1];
- mongoDB 复杂查询表达式
开窍的石头
mongodb
1:count
Pg: db.user.find().count();
统计多少条数据
2:不等于$ne
Pg: db.user.find({_id:{$ne:3}},{name:1,sex:1,_id:0});
查询id不等于3的数据。
3:大于$gt $gte(大于等于)
&n
- Jboss Java heap space异常解决方法, jboss OutOfMemoryError : PermGen space
0624chenhong
jvmjboss
转自
http://blog.csdn.net/zou274/article/details/5552630
解决办法:
window->preferences->java->installed jres->edit jre
把default vm arguments 的参数设为-Xms64m -Xmx512m
----------------
- 文件上传 下载 解析 相对路径
不懂事的小屁孩
文件上传
有点坑吧,弄这么一个简单的东西弄了一天多,身边还有大神指导着,网上各种百度着。
下面总结一下遇到的问题:
文件上传,在页面上传的时候,不要想着去操作绝对路径,浏览器会对客户端的信息进行保护,避免用户信息收到攻击。
在上传图片,或者文件时,使用form表单来操作。
前台通过form表单传输一个流到后台,而不是ajax传递参数到后台,代码如下:
<form action=&
- 怎么实现qq空间批量点赞
换个号韩国红果果
qq
纯粹为了好玩!!
逻辑很简单
1 打开浏览器console;输入以下代码。
先上添加赞的代码
var tools={};
//添加所有赞
function init(){
document.body.scrollTop=10000;
setTimeout(function(){document.body.scrollTop=0;},2000);//加
- 判断是否为中文
灵静志远
中文
方法一:
public class Zhidao {
public static void main(String args[]) {
String s = "sdf灭礌 kjl d{';\fdsjlk是";
int n=0;
for(int i=0; i<s.length(); i++) {
n = (int)s.charAt(i);
if((
- 一个电话面试后总结
a-john
面试
今天,接了一个电话面试,对于还是初学者的我来说,紧张了半天。
面试的问题分了层次,对于一类问题,由简到难。自己觉得回答不好的地方作了一下总结:
在谈到集合类的时候,举几个常用的集合类,想都没想,直接说了list,map。
然后对list和map分别举几个类型:
list方面:ArrayList,LinkedList。在谈到他们的区别时,愣住了
- MSSQL中Escape转义的使用
aijuans
MSSQL
IF OBJECT_ID('tempdb..#ABC') is not null
drop table tempdb..#ABC
create table #ABC
(
PATHNAME NVARCHAR(50)
)
insert into #ABC
SELECT N'/ABCDEFGHI'
UNION ALL SELECT N'/ABCDGAFGASASSDFA'
UNION ALL
- 一个简单的存储过程
asialee
mysql存储过程构造数据批量插入
今天要批量的生成一批测试数据,其中中间有部分数据是变化的,本来想写个程序来生成的,后来想到存储过程就可以搞定,所以随手写了一个,记录在此:
DELIMITER $$
DROP PROCEDURE IF EXISTS inse
- annot convert from HomeFragment_1 to Fragment
百合不是茶
android导包错误
创建了几个类继承Fragment, 需要将创建的类存储在ArrayList<Fragment>中; 出现不能将new 出来的对象放到队列中,原因很简单;
创建类时引入包是:import android.app.Fragment;
创建队列和对象时使用的包是:import android.support.v4.ap
- Weblogic10两种修改端口的方法
bijian1013
weblogic端口号配置管理config.xml
一.进入控制台进行修改 1.进入控制台: http://127.0.0.1:7001/console 2.展开左边树菜单 域结构->环境->服务器-->点击AdminServer(管理) &
- mysql 操作指令
征客丶
mysql
一、连接mysql
进入 mysql 的安装目录;
$ bin/mysql -p [host IP 如果是登录本地的mysql 可以不写 -p 直接 -u] -u [userName] -p
输入密码,回车,接连;
二、权限操作[如果你很了解mysql数据库后,你可以直接去修改系统表,然后用 mysql> flush privileges; 指令让权限生效]
1、赋权
mys
- 【Hive一】Hive入门
bit1129
hive
Hive安装与配置
Hive的运行需要依赖于Hadoop,因此需要首先安装Hadoop2.5.2,并且Hive的启动前需要首先启动Hadoop。
Hive安装和配置的步骤
1. 从如下地址下载Hive0.14.0
http://mirror.bit.edu.cn/apache/hive/
2.解压hive,在系统变
- ajax 三种提交请求的方法
BlueSkator
Ajaxjqery
1、ajax 提交请求
$.ajax({
type:"post",
url : "${ctx}/front/Hotel/getAllHotelByAjax.do",
dataType : "json",
success : function(result) {
try {
for(v
- mongodb开发环境下的搭建入门
braveCS
运维
linux下安装mongodb
1)官网下载mongodb-linux-x86_64-rhel62-3.0.4.gz
2)linux 解压
gzip -d mongodb-linux-x86_64-rhel62-3.0.4.gz;
mv mongodb-linux-x86_64-rhel62-3.0.4 mongodb-linux-x86_64-rhel62-
- 编程之美-最短摘要的生成
bylijinnan
java数据结构算法编程之美
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class ShortestAbstract {
/**
* 编程之美 最短摘要的生成
* 扫描过程始终保持一个[pBegin,pEnd]的range,初始化确保[pBegin,pEnd]的ran
- json数据解析及typeof
chengxuyuancsdn
jstypeofjson解析
// json格式
var people='{"authors": [{"firstName": "AAA","lastName": "BBB"},'
+' {"firstName": "CCC&
- 流程系统设计的层次和目标
comsci
设计模式数据结构sql框架脚本
流程系统设计的层次和目标
 
- RMAN List和report 命令
daizj
oraclelistreportrman
LIST 命令
使用RMAN LIST 命令显示有关资料档案库中记录的备份集、代理副本和映像副本的
信息。使用此命令可列出:
• RMAN 资料档案库中状态不是AVAILABLE 的备份和副本
• 可用的且可以用于还原操作的数据文件备份和副本
• 备份集和副本,其中包含指定数据文件列表或指定表空间的备份
• 包含指定名称或范围的所有归档日志备份的备份集和副本
• 由标记、完成时间、可
- 二叉树:红黑树
dieslrae
二叉树
红黑树是一种自平衡的二叉树,它的查找,插入,删除操作时间复杂度皆为O(logN),不会出现普通二叉搜索树在最差情况时时间复杂度会变为O(N)的问题.
红黑树必须遵循红黑规则,规则如下
1、每个节点不是红就是黑。 2、根总是黑的 &
- C语言homework3,7个小题目的代码
dcj3sjt126com
c
1、打印100以内的所有奇数。
# include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=100; i++)
{
if (i%2 != 0)
printf("%d ", i);
}
return 0;
}
2、从键盘上输入10个整数,
- 自定义按钮, 图片在上, 文字在下, 居中显示
dcj3sjt126com
自定义
#import <UIKit/UIKit.h>
@interface MyButton : UIButton
-(void)setFrame:(CGRect)frame ImageName:(NSString*)imageName Target:(id)target Action:(SEL)action Title:(NSString*)title Font:(CGFloa
- MySQL查询语句练习题,测试足够用了
flyvszhb
sqlmysql
http://blog.sina.com.cn/s/blog_767d65530101861c.html
1.创建student和score表
CREATE TABLE student (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
name VARCHAR
- 转:MyBatis Generator 详解
happyqing
mybatis
MyBatis Generator 详解
http://blog.csdn.net/isea533/article/details/42102297
MyBatis Generator详解
http://git.oschina.net/free/Mybatis_Utils/blob/master/MybatisGeneator/MybatisGeneator.
- 让程序员少走弯路的14个忠告
jingjing0907
工作计划学习
无论是谁,在刚进入某个领域之时,有再大的雄心壮志也敌不过眼前的迷茫:不知道应该怎么做,不知道应该做什么。下面是一名软件开发人员所学到的经验,希望能对大家有所帮助
1.不要害怕在工作中学习。
只要有电脑,就可以通过电子阅读器阅读报纸和大多数书籍。如果你只是做好自己的本职工作以及分配的任务,那是学不到很多东西的。如果你盲目地要求更多的工作,也是不可能提升自己的。放
- nginx和NetScaler区别
流浪鱼
nginx
NetScaler是一个完整的包含操作系统和应用交付功能的产品,Nginx并不包含操作系统,在处理连接方面,需要依赖于操作系统,所以在并发连接数方面和防DoS攻击方面,Nginx不具备优势。
2.易用性方面差别也比较大。Nginx对管理员的水平要求比较高,参数比较多,不确定性给运营带来隐患。在NetScaler常见的配置如健康检查,HA等,在Nginx上的配置的实现相对复杂。
3.策略灵活度方
- 第11章 动画效果(下)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- FAQ - SAP BW BO roadmap
blueoxygen
BOBW
http://www.sdn.sap.com/irj/boc/business-objects-for-sap-faq
Besides, I care that how to integrate tightly.
By the way, for BW consultants, please just focus on Query Designer which i
- 关于java堆内存溢出的几种情况
tomcat_oracle
javajvmjdkthread
【情况一】:
java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环; 如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决: <jvm-arg>-Xms3062m</jvm-arg> <jvm-arg>-Xmx
- Manifest.permission_group权限组
阿尔萨斯
Permission
结构
继承关系
public static final class Manifest.permission_group extends Object
java.lang.Object
android. Manifest.permission_group 常量
ACCOUNTS 直接通过统计管理器访问管理的统计
COST_MONEY可以用来让用户花钱但不需要通过与他们直接牵涉的权限
D