- 博客(22)
- 收藏
- 关注
原创 二分 深入理解
目录一、算法概要二、推广(一)二分解(二)h指数一般做法一、算法概要首先要知道二分是干什么的和要求(1)二分的返回值返回的是第一个大于等于指定数的数值(2)要二分要保证序列有序 而有序不一定能二分这个是从左向右找到x int l=0,r=n-1; //表示左边界和右边界 while(l<r) //左边界要小于右边界才移动 ...
2022-03-25 18:06:24
622
1
原创 快速排序,变形题目
不多说我们先看快排是怎么写的题目一其实说白了这个排序直接调用内置函数sort()就可以做排序了,但我们还是分析以下快排的代码帮助理解下一道题目代码逻辑难点就是理解做递归的这个过程以 3 2 1 4 5 为例子我是这样理解递归的递归在我看来就是将原来的一个大的集合,拆分成小的集合,然后先对小集合操作,再对每个小集合进行合并所以在看的时候是从小往大看的,即先对一个元素操作,再加入一个元素,每次操作完再加入一个元素就像这里 我们是随便取一个序列中间的值x然后把比...
2022-03-25 15:46:40
509
原创 分组背包问题(详细解答)
目录代码小结题目现在既给定了数量又要求每一类至多只能选选一个物品这样一看又又类似于01背包问题了因为对于f[i][j]它的更新方式就是对于f[i-1][j]进行更新 现在就是是否选择第i组物品中的某一个于是乎相较于我们一开始的01背包差别就在于多了一个对第i组每个物品的遍历代码#include<iostream>#include<cstring>#include<algorithm>using namespace std
2022-03-18 17:30:57
585
原创 01背包问题推广———分组法(多重背包问题)(超详细解释)
目录(1)不能用完全背包问题的理由(2)基础代码(3)优化思路(1)证明用2分组的合理性(2)最后使用01背包优化删去一个维度总结原题(1)不能用完全背包问题的理由首先我们来题干乍一看很像完全背包问题,但是这里出现了一个限制,就是物品的数量是给定的如果现在用完全背包问题的优化思路就会发现f[i][j]=max(f[i-1][j],f[i-1][j-v]+w ...f[i-1][j-k*v+k*w)f[i][j-v]=max( f
2022-03-18 16:44:32
886
原创 DP 完全背包问题
(一)依然是按照如下图进行分析其实关键就是怎么划分集合我们来注意现在的条件,每个物品都可以无限取所以我们在划分集合的时候,要保证所有情况都能遍历过所以第i种物品取1~k个的情况都要包含注意:现在我们的f[i][j]是由在f[i][j-k*v[i]]+w[i] 这k个选项中更新来的,对第i层的更新是从1~k个不同的选择 去取其中的最大值而01背包是从上一个,即f[i-1][j]去更新的,是对第i-1层的更新不妨这样来划分集合于是我们得到以下代码此时...
2022-03-18 07:30:00
350
原创 智能指针和正则表达式
目录一、共享智能指针(1)定义访问(2)使用自定义类型数据(3)成员函数(4)带删除器的写法二、弱引用指针(1)定义访问(2)循环引用三、独占智能指针(1)创建自定义类(2)类内函数的使用(3)删除器写法四、正则表达式 包含头文件regex(1)基本内容(2)使用1.匹配2.正则替换3.截取处理字符串包含头文件memory智能指针本质是一个模板类,一般使用的是对象智能体现在内存的释放 用智能指针管理new的对象,不需要手动de
2022-02-13 23:19:11
132
原创 STL算法(二)
目录一、排列组合二、算术类算法(1)求和(2)逐步求和(3)求内积运算 矩阵乘法(4)求相邻元素差值三、生成异变算法(1)for_each访问(2)fill 填充一部分元素(3)fill_n(4)填充前n个位置 通过函数去复制(5) transform使用方式和for_each类似四、关系类算法(1)equal(2)includes(3)lexicographical_compare(4)mismatch五、集合运算(1)set_.
2022-02-12 21:27:12
968
原创 STL算法(一)
包含算法头文件algorithm一、查找算法#include<iostream>#include<algorithm>#include<string>#include<functional>#include<vector>#include<list>(1)基本查找 find:区间查找 find_if:条件查找 find_firt_of: 查找区间第一次出现值 adjacent_find: ...
2022-02-12 20:19:25
1200
原创 STL迭代器
目录一、迭代器基本概念(1)内置迭代器的使用(2)自己模拟迭代器的实现(3)流型迭代器二、lambda表达式(1)基本概念(2)捕获方式的区别三、仿函数 包含头文件functional基本概念使用四、函数适配器 包含头文件functional(1)普通函数绑定(2)类内成员函数绑定(3)占位符表示原来的参数去第几位五、函数包装器 包含头文件functional(1)包装普通函数(2)包装成员函数和静态函数(3)包装仿函数...
2022-02-11 21:56:22
2773
1
原创 STL(下) c++
目录一、集合 包含头文件set(1)单集合(2)多重集合(没有去重功能,只有排序功能)(3)自定义数据插入二、bitset 包含头文件bitset三、map与multimap(1)map(2)自定义类型(3)多重数对四、initializer_list 包含头文件initializer_list五、tuple 包含头文件tuple(1)构造(2)访问(3)连接六、折叠参数 用 ... 表示参数包的展开1、递归的方式展开,自动做一个参数...
2022-02-09 21:27:11
560
原创 STL容器(中)c++
目录一、list容器 包含头文件list(1)操作基本数据类型(2)操作自定义类型的数据二、stack栈 包含头文件stack(2)进制转换三、deque双向队列 包含头文件deque(1)前出(2)后出(3)插入四、queue队列 包含头文件queue五、优先队列 包含头文件queue一、list容器 包含头文件list会使用头文件functional less 和greator的头文件(1)操作基本数据类型void test...
2022-02-09 20:54:10
362
原创 STL容器(上)c++
目录一、array容器 包含头文件array(1)数组的部分内置函数和用法(2)用数组存储自定义类型的数据(3)补充说明二、vector容器 包含头文件vector (1)三种使用方式(2)使用自定义类型的数据(3)其他操作三、vector与array的嵌套(1)array与array的嵌套(2)vector与vector的嵌套(3)array与vector组合(4)vector与array组合总起array必须传入长度,vecto...
2022-02-09 20:29:43
1034
原创 模板c++
函数模板模板:把类型作为未知量声明模板的语法 template<typename _Ty> 注:_Ty只是代号可以替换(1)引入模板
2022-01-28 13:46:57
1071
原创 c++异常处理
头文件#include<exception> 一、异常处理机制:暂缓问题处理,不在当前函数处理,在调用者中处理 1.任何东西都可以是异常,错误只是异常的一种 2.异常一旦被抛出,不作处理,如果引发异常,会调用默认的abort终止程序二、捕获和抛出异常 throw抛出异常(可以理解为返回一个值,可以是任何类型,作为处理异常的一个参照) try(检查、捕获)和catch(处理异常)(try和catch) 必须一起出现,并且{}不能省略 try { //...
2022-01-25 15:08:42
645
原创 io流c++
c++IO流 流:若干个字节数据从一端到另一端流体系:1、流对象 2、流运算符一、输入输出流ostream类 cout(都可以) cerr(程序可能错误输出) clog(日志文件输出)istream类cin cin.getline()(只能获取char*而不能是string类型)//一次读取一行void testostream(){ //重定向:把程序的输入和输出定向为文件即在文件里实现输入和输出 cout << "标准输出" << endl;/...
2022-01-24 15:54:58
444
原创 虚函数和多态
一、虚函数和虚函数表用virtual修饰的函数叫虚函数虚函数表:函数指针,存储所有虚函数首地址普通函数对类所占内存无影响,虚函数会影响,但无论有多少虚函数,只增加一个指针大小的字节(即四个字节),空的类或者结构体 占用一个字节作为标识 一旦有数据就不需要这一个字节对于虚函数在类外实现就不需要virtual只需要类名限定即可多态:同一个调用的不同结果,注意弄清什么时候调用哪个函数多态的必要条件 1父类必须要有虚函数 2子类必须采用公有继承 3必须要有指针的使用class Man{p
2022-01-23 15:35:02
676
原创 继承和派生
继承和派生继承:子类中没有产生新的属性,行为派生:子类中产生新的属性,行为class 子类名:继承方式 父类名 {};继承方式就是权限限定词继承的实质:父类中的属性子类中有一份权限问题 :继承方式只会增强父类属性在子类中的权限显示继承后 public protected private public public protected 无法访问 protected protected protected 无法访问 private
2022-01-22 16:02:34
296
原创 类的组合。。。
一、以另一个类的对象作为数据成员,构造函数必须采用初始化参数列表的方式构造函数必须采用初始化参数列表的方式访问依旧受到权限限定class Boy{public: Boy(string name, int age) :name(name), age(age) {} void print() { cout << name << "\t" << age<<endl; }protected: void printData() {..
2022-01-21 09:11:15
94
原创 Matplotlib
用到的模板import numpy as npimport pandas as pdimport reimport matplotlibimport matplotlib.pyplot as pltfrom matplotlib.lines import Line2D from matplotlib.patches import Circle, Wedgefrom matplotlib.collections import PatchCollection1matplotlib..
2022-01-15 12:22:20
584
原创 运算符重载
1基本内容(1)概念赋予运算符具有操作自定义类型数据的功能。本质为函数的调用。函数写法函数返回值类型 函数名 (函数参数)返回值类型:运算后的值函数名:operator加上重载运算符参数:运算符的操作数函数体:写运算符具体想要的操作(2)注意= () -> []只能采用类的成员函数重载流重载只能友元重载(改变了另一个类的对象). 和.*和?:以及::不能被重载2基本重载类型(1)友元重载class Complex{publ...
2022-01-14 15:07:54
264
原创 初识matplotlib
matplotlib是python2D绘图库1.基本概念1Matplotlib的图像是画在figure(如windows,jupyter窗体)上的,每一个figure又包含了一个或多个axes(一个可以指定坐标系的子区域)。最简单的创建figure以及axes的方式是通过pyplot.subplots命令,创建axes以后,可以使用Axes.plot绘制最简易的折线图。2由figure axes axis tick组成figure(图像)包括所有axes(坐标系)单位在axes(坐标系)内包
2022-01-11 19:26:03
1649
空空如也
yolov5我想修改train文件中输出图片的分辨率,该怎么修改
2024-03-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人