- 博客(79)
- 收藏
- 关注
原创 C++:dp问题
那么问题来了,假设鸣人的查克拉能量为 MM,他影分身的个数最多为 NN,那么制造影分身时有多少种不同的分配方法?不包含i的加上dp[i-1][j] ,j不需要改变,因为这个是不加上v[i]的情况,上一个也是没选i这个情况。给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。针对不同的作战情况,鸣人可以选择制造出各种强度的影分身,有的用来佯攻,有的用来发起致命一击。上图为直接思考dp方式。影分身是由鸣人身体的查克拉能量制造的,使用的查克拉越多,制造出的影分身越强。
2025-02-27 19:51:38
768
原创 Linux:基础开发工具
在Linux下安装软件,主要有以下方法1. 下载到程序的源代码,并进行编译得到可执行程序。2. 软件包安装-- 获取rpm安装包,用rpm指令安装3. 包管理器 yum(centos) apt/apt-get(ubuntu) 进行安装。(解决包的依赖问题)软件包和软件管理器,类似于手机上的app和应用商店的关系。yum 是Linux下常用的一种包管理器,主要应用在Fedora,RedHat,Centos等发行版上。而在Ubuntu上主要使用apt作为其包管理器。
2024-12-03 22:49:18
1633
原创 C++11新特性:可变参数模板
例如,一个处理单个参数并将其返回的函数GetArg,我们可以使用包扩展,将参数包的每一个元素都传给另一个函数。可以直观的看到在直接传递构造对象的参数时,emplace_back直接就构造了,没有创建临时对象进行移动构造,在涉及隐式类型转换或复杂对象时允许我们直接传递构造函数的参数从而提高了效率。C++11加入了可变模板参数,也就是支持可变数量的,也就是说支持可变数量参数的函数模板和类模板,可变数目的参数被称为参数包。递归时,T接受传来参数包的第一个参数类型,arg接受其余的参数类型,以此往复。
2024-11-12 01:10:10
1251
原创 C++ 11新特性:列表初始化,右值引用与移动语义
在语法层面上,左值引用和右值引用都是取别名,不开空间。左值引用已经解决了大多数的拷贝效率问题,但是对于有些传值返回需要拷贝的场景,如果传临时变量的引用返回,就会出错,临时变量的生命周期只在函数内,出了函数,变量就销毁了。但是变量表达式都是左值属性,即一个右值被右值引用绑定后,右值引用变量表达式的属性是左值,也就是说我们Fun函数匹配的都是左值引用版本的。f2这样的函数模板中,T&& x参数看起来是右值引用参数,由于引用折叠的规则,它传递左值时就是左值引用,传递右值时就是右值引用,泛左值包含将亡值和左值。
2024-11-08 19:16:46
1283
原创 unordered_map与unordered_set封装实现C++
STL容器中unordered_set与unordered_map的底层实际上是一个哈希表。
2024-11-02 15:15:20
547
原创 C++ set和map的模拟实现
我们之前在里讲过,STL容器中的set与map底层就是一棵红黑树,要模拟实现set与map底层需要实现红黑树,并将其做一些改造。
2024-10-23 21:56:02
798
原创 逆波兰表达式
根据示例我们发现,给定的字符串有空格,我们上面的代码无法处理空格,于是我们可以新建一个字符串接收给定字符串的值,遇到' '就不接收,就可以得到一个无空格的表达式。因为如果栈里面存储的是前一个运算符,当前运算符比前一个优先级高,说明前一个不能运算,当前运算符也不能运算,因为后面可能有更高优先级的运算符。建立一个栈来存储运算符,利用栈后进先出的性质,在遇到后面运算符时出栈里面存储的前面的运算符进行比较,确定优先级。,可以处理不同进制的数字字符串,并将其转换为十进制的整数。
2024-10-12 10:47:42
857
原创 C++实现AVL树增删查
AVL树是最先发明的自平衡二叉查找树,AVL树是一颗空树,或者具备下列性质的一颗二叉搜索树1. 左右子树都是AVL树2. 左右子树高度差的绝对值不超过1(
2024-10-09 19:50:27
830
原创 Linux 权限
新建文件夹默认权限为0666(rw- rw- rw-),新建目录的默认权限为0777(rwx rwx rwx),但实际上我们所创建的目录或文件,看到的权限往往不是上面的值,是为什么呢?:普通文件普通文件(指不包含有文件系统信息的结构信息的文件,是用户所接触到的文件,比如常见的.exe,.c,.txt等,归档文件等在Linux中统称为普通文件)。例如全名,电话等,可以不填。这样就引出了一个问题:只要用户具有目录的写权限,用户就可以删除目录中的文件,而这显然是不合理的,我创建的文件为什么别人想删就删呢?
2024-10-01 23:01:42
1600
原创 C++ set,multiset与map,multimap的基本使用
set类的声明如下代码所示class set;T是set底层关键字的类型。set默认要求T支持小于比较,如果不支持或者想按自己的需求走可以自行实现仿函数来传给第二个模板参数。set底层存储数据的内存是从空间配置器申请的,如果需要可以自己实现内存池,传给第三个参数。一般情况下我们都不需要传后两个模板参数。set底层使用红黑树实现,增删查的效率是O(logN),迭代器遍历是走的搜索树的中序,所以是有序的。
2024-09-30 16:31:11
1238
原创 Linux 基本指令(二)
tail命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f 文件名 会把文件里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。head与tail就像他的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head用来显示档案的开头至标准输出中,而tail想当然就是看档案的结尾。将mydir目录下的文件全部打包,(参数f后面的文案档名是自己取的,我们习惯上都用.tar来作为辨识。,将指定目录下的所有文件和子目录一并处理。
2024-09-24 00:02:28
1262
原创 C++ 多态全面解析
多态是一个继承关系下的类对象,去调用同一函数,产生了不同的行为。比如Student继承了People。People对象调用函数买票全价,Student对象调用函数买票打折。实现多态的两个必须重要条件1. 必须是基类的指针或者引用调用虚函数。2. 被调用的函数必须是虚函数。说明:要实现多态效果,第一必须是父类的指针或引用,因为只有父类的指针或引用才能既指向父类对象又指向子类对象;第二子类必须对父类的虚函数重写/覆盖,重写或者覆盖了,父、子类才能有不同的函数,多态的不同形态效果才能达到。
2024-09-17 15:46:25
1048
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人