自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [动态规划]装满背包的方法(数量不限)

题目简介:有大小为10 20 50 100 的四种物品,装入容量为 n 的背包,问刚好装满背包的方法数样例1:输入 0输出 0样例2:输入 100输出 11样例3:输入 15输出 0注意事项:由于大小都是10的倍数,可进行判断:若容量n是10的倍数,则将n除以2,物品大小以1 2 5 10计算;若容量n不是10的倍数,则输出0,程序结束。思路:循环4个物品大小与1~n的容量,两者相减得到一个容量,此容量指放入当前循环物品前的容量,放入当前

2022-01-22 20:07:04 747

原创 [动态规划]编辑距离

【编辑距离】设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。这里所说的字符操作共有三种:1、删除一个字符;2、插入一个字符;3、将一个字符改为另一个字符。对任意的两个字符串A和B,计算出将字符串A变换为字符串B所用的最少字符操作次数。【输入】第一行为字符串A;第二行为字符串B;字符串A和B的长度均小于2000。【输出】只有一个正整数,为最少字符操作次数。【输入样例】sfdqxbwgfdgw【输出样例】4dp函数中第一个坐标代表第一个字符串中的

2022-01-05 23:04:05 493

原创 [力扣]3.无重复字符的最长子串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是

2021-12-29 23:05:02 184

原创 [力扣]1.两数之和

新的开始(#^.^#)

2021-12-29 22:40:32 117

原创 [动态规划]数的划分

【数的划分】将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5; 1,5,1; 5,1,1;问有多少种不同的分法。 输出一个整数,即不同的分法。【输入】两个整数n,k(6<n≤200,2≤k≤6),中间用单个空格隔开。【输出】一个整数,即不同的分法。【输入样例】7 3【输出样例】4思路:dp[i][j] 指在有 i 个数划分为 j 个时所有的方法数如果是最普通的方程的话应该长这样:dp[i][j

2021-12-22 22:57:38 928

原创 [动态规划]装满背包的方法数

呐,题在这儿【装满背包的方法数】有n个物品,找出能刚好装满背包(容量为t)的方法数。如:n=5, 5个物品大小分别为1,2,3,4,5,背包容量t=5;那么可能的组合有5=1+4和5=2+3和5=5三种组合方式。【输入】输入的第一行是两个正整数n和t,用空格隔开,其中1≤n≤20,表示物品的个数,t为背包容量(1≤t≤1000);接下来的一行是n个正整数,用空格隔开。【输出】和为t的不同的组合方式的数目。【输入样例】5 51 2 3 4 5【输出样例】3思路:循环遍历每个物品

2021-12-15 22:55:02 1928

原创 [动态规划]导弹拦截2(习题)

动规导弹来喽!

2021-12-01 22:58:41 263

原创 [C++]动态数组

当你偷偷刷题试图卷遍全世界的时候,有没有遇到这种情况:判题给了你5个数据,你用了列表的5个空间,其他200000个全部荒废。这空间复杂度确实不太对劲。那么,动态数组,你值得拥有。所谓动态数组,它的空间是动态的,你需要多少,它就有多少。比如说字符串(string)就是动态数组,你往里面插入字符,插入多少个,它就占多少空间。动态数组叫做vector(至于STL啥的就不管了,会用就行)要用这个好东西,你要先导入这个:#include <vector>然后创建一个动态数组:v

2021-11-24 22:43:16 537

原创 [C++贪心习题]压缩歌曲

(新人求教!判题正确率92%,有一个答案错误×,求指点!)题目大致如下:给定歌曲数量,储存大小与每首歌压缩前后的大小,问最少压缩几首歌才能全部装入,若不能则输出-1.样例输入:4 2110 87 43 15 4样例输出:2解本题时不要被题目吓到,本人一开始看题想到动态规划,定睛一看发现只有能放与不能放两种情况,于是长舒一气。思路如下:先判断特殊情况,也就是能否装下,否则输出-1并结束程序之后统计所有歌曲压缩前的大小总和,并将歌曲以压缩能够节省的空间大小降序排序,已用尽可能少的压缩

2021-11-17 22:55:43 1498

原创 [动态规划]混合背包问题(有三种背包问题模板)

问题如下:有一个已知容量的背包与一些已知占用空间与价值的物品,一些物品只有一个,一些有几个,一些有无数个,问背包可容纳的最大价值。本题就是将0/1背包、多重背包与完全背包问题进行结合,在判断问题类型后进行相对应的操作模板0/1背包问题:void one(int c, int w){ for (int v = m; v >= w; v--){ f[v] = max(f[v], f[v - w] + c); }}完全背包问题:void wan(int c, int w

2021-11-14 14:27:29 649

原创 [C++]指针

int * prt这里的表示*prt是一个指针,类型为int*,prt是指向int类型的指针此时指针还未初始化,称为野指针int x = 1;int * ptr = & x;此时prt指向了x*:解引用运算符,又称间接运算符(与乘号完全不同!!!)cout << * prt << endl; // 10cout << prt << endl; // x的内存地址 如 0x7ffee2234a5cint * p1, p2;此处p

2021-11-10 22:39:35 404

原创 [动态规划]完全背包问题

本题与0/1背包问题非常相似,只是每个物品都有无限个。给定物品种类个数,背包容量与各个物品的大小与价值,问可容纳的最大价值是多少?#include <bits/stdc++.h>using namespace std;// w,c数组分别储存重量和价值 int w[200],c[200],f[200];int main(){ int m, n; cin >> m >> n; for (int i = 1; i <= n; i++){ cin

2021-11-10 22:05:54 51

原创 [动态规划]路径数

在m行n列中有多少条路径可以从(1,1)到(m,n)?#include <bits/stdc++.h>using namespace std;int a[1005];int main(){ int m,n; cin >> m >> n; // 从左到右,逐次更新 for (int i = 1; i <= m; i++){ for (int j = 1; j <= n; j++){ if (i == 1 && j ==

2021-10-31 11:07:13 99

原创 [C++]北极圈远征

在征服南极之后,Davor 开始了一项新的挑战。下一步是在西伯利亚、格林兰、挪威的北极圈远征。他将在 2018 年 12 月 31 日开始出发,在这之前需要一共筹集 n 元钱。他打算在每个星期一筹集 x 元,星期二筹集 x+k 元,……,星期日筹集 x+6k 元,并在 52 个星期内筹集完。其中 x,k 为正整数,并且满足 1 ≤ x ≤ 100.现在请你帮忙计算 x,k 为多少时,能刚好筹集 n 元。输入格式一个整数 n ,表示要筹集的金钱数目。输出格式第一行输出 x,第二行输出 k。保证答案

2021-10-27 22:54:42 597

原创 [动态规划]价值相近的背包

0/1背包问题续:价值相近的背包有两个背包与一些物品,放入两个背包中使价值最相近,问最小价值差是多少?这道题中,数值具有容量和价值双重身份,价值差就是最大价值。要做的就是在一个容量为总容量/2的背包中放尽量大价值的物品即可(0/1背包问题思路看https://blog.csdn.net/ang_ang_ge/article/details/120799476?spm=1001.2014.3001.5501)代码#include <bits/stdc++.h>using namesp

2021-10-24 11:58:24 1698

原创 单纯的祝福

1024快乐!

2021-10-24 08:33:58 47

原创 [C++]深度搜索DFS

深度搜索(DFS)是计算机算法中考频较高的一种,在此奉上个人理解。先看最基础的一道题:在一个n * n的方格中,你站在(0,0),有一些格子无法通行(标记为1,初始为0)。给定一个出口坐标,问是否可以走到出口。方格如上,深搜开始思路在 3 中1. 变量int G[105][105],vis[105][105];int n;bool f = false;int dx[5] = {-1, 0, 1, 0}, dy[5] = {0, 1, 0, -1};G:地图vis:判断是否走过n:

2021-10-23 20:22:22 255

原创 [蓝桥杯]最大子阵

资源限制时间限制:1.0s 内存限制:256.0MB问题描述  给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大。  其中,A的子矩阵指在A中行和列均连续的一块。输入格式  输入的第一行包含两个整数n, m,分别表示矩阵A的行数和列数。  接下来n行,每行m个整数,表示矩阵A。输出格式  输出一行,包含一个整数,表示A中最大的子矩阵中的元素和。样例输入3 3-1 -4 33 4 -1-5 -2 8样例输出10样例说明  取最后一列,和为10。数

2021-10-20 22:34:20 146

原创 [动态规划]0/1背包问题(省空间复杂度)

0/1背包问题是动态规划中最为经典的题目。有n个物品,已知各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?样例输入:3 83 35 45 5样例输出:8上一篇文章中用了二维数组,比较浪费空间复杂度,这里使用一维数组,思路与上一篇相同。(一维数组只保留最高价值)由于用了一维数组,所以关键判别式应为f[j] = max(f[j], f[j - w[i]] + c[i]);代码如下:#include <bits/stdc++.h>using

2021-10-17 10:03:20 486

原创 [北京-2012]装饰效果

小维有一条彩带,上面有相邻的 n(n <= 1000) 个不同颜色的区域,每个区域对于装饰效果的影响不一样。小维想在上面截取一段,请问最多可以获得多大的装饰效果。样例输入5-1 2 -1 2 -1样例输出3本题如果强行枚举时间可能会超限,考虑到这个点,于是决定用前缀和来写。思路:现将第i个数放在列表number中,前i个数之和放在列表s中,以减小时间复杂度。注意:万万不可纯暴力枚举。代码如下:#include <iostream>using namespace s

2021-10-16 20:07:27 222

原创 [北京-2013]双节棍

小刚想买两根双节棍,左手一根,右手一根。他到商店里,发现共有n(2<=n<=100)根双节棍,第i根的长度为Li(1<=Li<=1000).他希望买下的两根双节棍的长度差尽可能的小,请帮它找到两根合适的双节棍,并输出最小的长度差。输入格式第一行:一个整数n,表示商店里出售双节棍的数量。第二行:n个正整数,用空格分开,第i个数Li表示第i根双节棍的长度。输出格式输出只有一个整数,为两根双节棍的长度差的最小值。样例输入5 3 4 1 6 8样例输出1本题考察枚举算法

2021-10-16 19:40:09 187

原创 [动态规划] 0/1背包问题

0/1背包问题是动态规划中最为经典的题目。有n个物品,已知各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?样例输入:3 83 35 45 5样例输出:8思路:动态规划,列表为先接下来需要寻找规律,关键节点为:当可以放入选定物品时进行价值比较。如【5,2】:当前可以放入物品2,这时需要比较两者价值,则比较【5,1】与【0,1】+自身价值【5,1】是指如果不替换的价值;而【(5 - 5),1】是指腾出物品所需空间后剩余价值(第一个5为当前背包容量

2021-10-16 18:00:20 72

空空如也

空空如也

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

TA关注的人

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