
算法
算法
框架师练习生
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第k大元素
实验要求 利用STL中的prority_queue容器,求出一个无序整数序列中第k大的元素 输入要求 第一行输入2个整数n(0<n<100)和k(0<k<=n) 第二行输入n个无序整数。 输出要求 输出第k大元素(不用换行) 例子 输入 4 3 2 1 3 3 输出 2 源码 #include <iostream> #include <queue> using namespace std; int main(){ int n, k; p原创 2020-11-04 19:16:18 · 309 阅读 · 0 评论 -
01背包(回溯法)
实验要求 用回溯法解决0-1背包问题时,其解空间有长度为n的0-1向量组成,并可以组织成高度为n+1满二叉树。二叉树的结点按层次遍历的顺序从上到下、从左到右的顺序编号(从1开始)。 采用回溯法解决问题时,可以使用约束条件对左子树进行剪枝,使用限界条件对右子树进行剪枝。 在本题中,约束条件为tw+w[i]<=C,限界条件为tv+rv[i]>maxv 输入要求 有多组数据。 每组数据包含三行。 第一行包含两个整数C(1 <= C <= 10000)和n(1 <= n <=原创 2020-11-23 16:22:10 · 858 阅读 · 0 评论 -
子集和问题(回溯法)
实验要求 给定n个不同的正整数集合w={w1, w2, …, wn)和一个正整数W,要求找出w的子集s,使该子集中所有元素的和为W。 输入要求 首先数据一行数据,包含两个整数W(1 <= W <= 10000)和n(1 <= n <= 20),分别表示和以及整数的个数。 第二行包含n个整数,依次表示第i个整数的值w(0 <= w[i] <= 100)。 输出要求 如果子集存在,则输出满足条件的子集的个数,否则输出“no",并换行。 测试用例 输入 输出原创 2020-11-23 16:35:59 · 2535 阅读 · 0 评论 -
冒号排序
实验要求 输入要求 多组输入 每组数据首先输入一个整数n(0<n<100),然后输入n个待排序的整数 输出要求 每组数据输出n-1行,表示算法中n-1次扫描并交换的结果。 例子 输入 7 2 6 -4 3 1 0 9 输出 -4 2 6 0 3 1 9 -4 0 2 6 1 3 9 -4 0 1 2 6 3 9 -4 0 1 2 3 6 9 -4 0 1 2 3 6 9 -4 0 1 2 3 6 9 注意:每个数字后面均有一个空格 源码 #include <原创 2020-11-04 19:09:58 · 327 阅读 · 0 评论 -
0/1背包问题(蛮力法)
实验要求: 用蛮力法解决0/1背包问题 输入要求: 第一行输入2个整数,分别代表物品数量n(1<=n<=10)和背包容量C(1<=C<=100);接下来输入n行,每行输入2个整数,分别代表物品的重量和价值。 输出要求: 第1行输出一个整数,表示可行解的数量。可行解指的是物品可以放入背包中的解决方案。 第2行输出最优解对应的物品重量和价值,用空格分隔。最有解指的是具有最大价值的可行解。 例子 输入: 4 6 5 4 3 4 2 3 1 1 输出: 10 6 8 代码 #i转载 2020-11-07 16:23:25 · 1650 阅读 · 0 评论