自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Acwing算法复习之分组背包

阅读本篇博客前需要了解01背包,不知道01背包的老铁们可以看链接里的博客(31条消息) Acwing算法复习之01背包问题_ForeverCodingGuy的博客-CSDN博客https://blog.csdn.net/ForeverCodingGuy/article/details/122868964?spm=1001.2014.3001.5501下面我们看分组背包经典的模板题(来源acwing)有N组物品和一个容量是V的背包。每组物品有若干个,同一组内的物品最多只能选一个。每件物品...

2022-02-12 11:17:43 143

原创 Acwing算法复习之多重背包

阅读本篇博客前最好先了解一下01背包和完全背包问题(链接如下)(31条消息) Acwing算法复习之01背包问题_ForeverCodingGuy的博客-CSDN博客https://blog.csdn.net/ForeverCodingGuy/article/details/122868964?spm=1001.2014.3001.5501(31条消息) Acwing算法复习之完全背包问题_ForeverCodingGuy的博客-CSDN博客https://blog.csdn.net/ForeverCo

2022-02-12 10:42:00 120

原创 Acwing算法复习之完全背包问题

在阅读本博客前,先需要了解一下01背包问题,下面是01背包博客链接(31条消息) Acwing算法复习之01背包问题_ForeverCodingGuy的博客-CSDN博客https://blog.csdn.net/ForeverCodingGuy/article/details/122868964?spm=1001.2014.3001.5501然后我们先上题目(完全背包的模板题)有N种物品和一个容量是VV的背包,每种物品都有无限件可用。第i种物品的体积是vi,价值是wi。...

2022-02-12 10:23:01 111

原创 Acwing算法复习之二维费用01背包问题(动态规划)

看本章博客需要提前了解一下01背包问题(下面为本人写的关于01背包博客)(31条消息) Acwing算法复习之01背包问题_ForeverCodingGuy的博客-CSDN博客跟之前一样,先上题目( 来源acwing 或 信息学奥赛一本通)宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事。一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生宠物小精灵。小智也想收服其中的一些小精灵。然而,野生的小精灵并不那么容易被收服。对于每一个野生小精灵而言,小智可能需要使用很多个精

2022-02-11 22:48:45 181

原创 Acwing算法复习之01背包问题

先把例题(模板题)列出来,然后再解析。题目:(来源acwing)有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围

2022-02-10 21:26:11 256

原创 动态规划之数字三角形

根据《算法竞赛进阶指南》,数字三角形问题描述为“给定一个共有N行三角矩阵A, 其中有第i行第j列,从左上角出发,每次可以向下方或右下方走一步,最终到达底部。求求把经过的所有位置上的数加起来,和最大是多少”。下面看一个模拟上述过程的简单模板题(来源usaco training)题目:给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8..

2022-02-09 22:34:31 876

原创 二叉搜索树实现-c++

二叉搜索树是比较常见的数据结构。可以说是所有的树结构中最基础的树结构。二叉搜索树最重要的特性是某结点左子树所有结点值小于该结点存放值,右子树所有结点值大于该结点存放值。这也是二叉“搜索”树名字由来。如果没有这个特性,倘若我们要搜索某个值,需要遍历所有结点。而借助这个特性,我们可以减少许多没有意义的搜索,极大提高搜索效率。至于二叉搜索树的实现,有几个比较关键点。1>前序遍历,中序遍历,后序遍历,分别有递归版本和迭代版本。递归版本很好理解。迭代版本就是利用了栈(先进后出嘛),...

2021-12-11 21:15:22 636

原创 链表实现-c++

链表是比较常见的数据结构了,没有特别需要难理解的地方,主要是实现的时候注意细节就好了。废话不多说,话都在酒(代码)里。#include<iostream>#include<cassert>using namespace std;template<class T>class Node{ T e; Node* next; Node() : next(nullptr) {} Node(T elem) : e(elem) {} Node(T ele

2021-12-07 16:16:45 245 2

原创 循环队列-c++

队列是一种常用的数据结构,但我们平常实现的队列有一个缺陷。想象一下,假设一个已经填满的队列,我们开始不断弹出队头元素,这时候我们会发现,虽然队尾看上去是满了,但实际上前面许多空间并没有使用,造成极大浪费。那么我们该怎么解决这个问题呢?我们可以采用循环队列的方式。既然前面还没用,我们再绕回到前面不就好了吗。具体看下图如果能理解这一点,那么下面的代码也就很显然了。#include<iostream>#include<cassert>using namespa..

2021-12-07 15:05:36 413

原创 栈的实现(基于数组)-c++

栈的实现其实没有特别复杂的地方,因为栈最主要的操作就是push和pop,那么基于动态数组(可见我上一篇博客),就可以实现栈。代码如下,如有错误请指正。#include<iostream>using namespace std;#define CAPACITY 5template<class T>class Stack{private: T* data; int size; int capacity; void resize(int cab)...

2021-12-07 13:31:49 637

原创 动态数组的实现-c++

数组实现本身不难。问题是如何实现一个动态的数组。也就是无论是增加元素还是删除元素,数组能够自动扩容或缩小。 那么如何实现这一点,关键就在于resize函数。当数组元素数目(即size)等于容量(capacity)时,就resize(2 * capacity),实现扩容。 同理,当数组元素数目十分少的时候(这里我们以size只有 capacity/4 为基准),我们就要缩小空间,减少浪费。那么这时候就当size== capacity / 4时,resize(cap...

2021-12-07 13:05:07 164

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除