随笔分类 - 算法题
摘要:1.查找二叉排序树: 算法思想: 首先将待查关键字key与根节点关键字t进行比较: a.如果bt->key = k, 则返回根节点指针。 b.如果bt->key < k,则进一步查找左子书。 c.如果bt->key > k,则进一步查找右子树。 使用递归算法实现。 2.jmu-ds-实现KMP: 使
阅读全文
摘要:. 完全背包问题 有 NN 种物品和一个容量是 VV 的背包,每种物品都有无限件可用。 第 ii 种物品的体积是 vivi,价值是 wiwi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 输入格式 第一行两个整数,N,VN,V,用空格隔开,分别表示物品种
阅读全文
摘要:【问题描述】 小明最近迷上了积木画,有这么两种类型的积木,分别为 I 型(大小为 2 个单位面积)和 L 型(大小为 3 个单位面积): 同时,小明有一块面积大小为 2 × N 的画布,画布由 2 × N 个 1 × 1 区域构 成。小明需要用以上两种积木将画布拼满,他想知道总共有多少种不同的方式?
阅读全文
摘要:【问题描述】 给定一个 N × M 的矩阵 A,请你统计有多少个子矩阵 (最小 1 × 1,最大 N × M) 满足子矩阵中所有数的和不超过给定的整数 K? 【输入格式】 第一行包含三个整数 N, M 和 K. 之后 N 行每行包含 M 个整数,代表矩阵 A. 【输出格式】 一个整数代表答案。 【样
阅读全文
摘要:【问题描述】 进制规定了数字在数位上逢几进一。 X 进制是一种很神奇的进制,因为其每一数位的进制并不固定!例如说某 种 X 进制数,最低数位为二进制,第二数位为十进制,第三数位为八进制,则 X 进制数 321 转换为十进制数为 65。 现在有两个 X 进制表示的整数 A 和 B,但是其具体每一数位的
阅读全文
摘要:【问题描述】 爱丽丝要完成一项修剪灌木的工作。 有 N 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晚会修剪一棵灌 木,让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始, 每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开 始向左修剪灌木。直到修剪了最左的灌木后
阅读全文
摘要:【问题描述】 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天 做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在 第几天实现做题数大于等于 n 题? 【输入格式】 输入一行包含三个整数 a, b 和 n. 【输出格式】 输出一个整数代表天数。 【样例输入】
阅读全文
摘要:快速排序算法是一种经典的排序算法。 基本思想: 选择一个基准元素(通常选择第一个元素或者最后一个元素),通过一趟排序将待排序序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置;然后再递归地排序划分的两部分。 因此本质上快速排序是一种分治算法。 由于在排序的
阅读全文
摘要:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 数据范围 二维数组中元素个数范围 [0,1000][0,1000] 样例 输入数组: [ [1,2,8,9], [2,4,9,12
阅读全文
摘要:有 N种物品和一个容量是 V 的背包,每种物品都有无限件可用。 第 i 种物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。 接下来有 N 行,每行两个
阅读全文
摘要:2.2 版本2 一维将状态f[i][j]优化到一维f[j],实际上只需要做一个等价变形。 为什么可以这样变形呢?我们定义的状态f[i][j]可以求得任意合法的i与j最优解,但题目只需要求得最终状态f[n][m],因此我们只需要一维的空间来更新状态。 (1)状态f[j]定义:NN 件物品,背包容量j下
阅读全文
摘要:include [HTML_REMOVED]using namespace std;const int N = 1e5 + 10; int a[N],tmp[N]; void merge_sort(int q[],int l,int r){if(l>= r) return;int mid =l +
阅读全文
摘要:贪心 本页面将简要介绍贪心算法。 简介 贪心算法(英语:greedy algorithm),是用计算机来模拟一个“贪心”的人做出决策的过程。这个人十分贪婪,每一步行动总是按某种指标选取最优的操作。而且他目光短浅,总是只看眼前,并不考虑以后可能造成的影响。 可想而知,并不是所有的时候贪心法都能获得最优
阅读全文
摘要:工作原理 桶排序按下列步骤进行: 设置一个定量的数组当作空桶; 遍历序列,并将元素一个个放到对应的桶中; 对每个不是空的桶进行排序; 从不是空的桶里把元素再放回原来的序列中。 性质 稳定性 如果使用稳定的内层排序,并且将元素插入桶中时不改变元素间的相对顺序,那么桶排序就是一种稳定的排序算法。 由于每
阅读全文
摘要:工作原理 排序对不相邻的记录进行比较和移动: 将待排序序列分为若干子序列(每个子序列的元素在原始数组中间距相同); 对这些子序列进行插入排序; 减小每个子序列中元素之间的间距,重复上述过程直至间距减少为 1。 性质 稳定性 希尔排序是一种不稳定的排序算法。 时间复杂度 希尔排序的最优时间复杂度为 。
阅读全文
摘要:多重背包问题 I 有 NN 种物品和一个容量是 VV 的背包。 第 ii 种物品最多有 sisi 件,每件体积是 vivi,价值是 wiwi。 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。 输入格式 第一行两个整数,N,VN,V,用空格隔开,分别表示物品种数
阅读全文
摘要:题目: 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 v[i],价值是 w[i]。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 输入格式 第一行两个整数,N,V用空格隔开,分别表示物品数量和背包容积。 接下来有
阅读全文