- 博客(7)
- 资源 (3)
- 收藏
- 关注
原创 第三章 动态规划
学习要点理解动态规划的概念 掌握动态规划算法的基本要素 (1) 最优子结构性质 (2) 重复子问题性质 掌握设计动态规划算法的步骤 (1) 找出最优解的性质,并刻画其结构特征 (2) 递归地定义最优值 (3) 以自底向上的方式计算最优解 (4) 根据计算最优值时得到的信息构造最优解。动态规划与分治法类似,都是将原问题划分成若干子问题求解,不同的是,适用于动态规划法解的问题,经分解得到
2015-06-15 15:33:23 597
原创 第二章 递归与分治策略
学习要点理解递归的概念掌握设计有效算法的分治策略通过下面的范例学习分治策略设计技巧(1) 二分搜索技术(2) 大整数乘法(3) Strassen 矩阵乘法(4) 棋盘覆盖(5) 合并排序和快速排序(6) 线性时间选择(7) 最接近点对问题(8) 循环赛日程表 分治
2015-06-15 11:45:23 481
原创 【C语言】C语言动态分配内存
C语言动态分配内存 一维数组#include #include #include int main(){ int i = 0; int N = 0; int *arr = NULL; scanf("%d",&N); arr = (int *)malloc(N*sizeof(int)); memset(arr,0,N*sizeof(int)); for (i =
2015-06-12 11:39:56 2278
原创 第一章 算法概述
算法概述algorithm 英 ['ælgərɪð(ə)m] 1.1 算法与程序算法是由若干条指令组成的又穷序列,且满足下述4条性质。(1) 输入:有零个或多个由外部提供的量作为算法的输入。(2) 输出:算法产生至少一个量作为输出。(3) 确定性:组成算法的每条指令是清晰的,无歧义的。(4) 有限性:算法中每条指令
2015-06-09 17:57:00 968
原创 又见01背包
时间限制:1000 ms | 内存限制:65535 KB | 难度:3描述 有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W 的物品,求所有挑选方案中物品价值总和的最大值。 1 1 1 1 输入 多组测试数据。 每组测试数据第一行输入,n 和 W ,接下来有n行,每行输入两个数,代表第i个物品的w
2015-06-06 16:04:30 420
原创 【C语言/算法之 01 背包】完全背包
[题目]有 N 种物品和一个容量为 V 的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。[基本思路]这个问题非常类似于01背包问题,所不同的是每种物品有无限件。也就是从每种物品的角度考虑,与它相关的策略已并非取或不取两种,而是有取0件、取1件、取2件⋯⋯等很多种。如果仍然按照解0
2015-06-04 19:57:49 935
原创 【C语言/算法之 01 背包】基础版
[01背包问题]:设有一个背包可以放入的物品重量为V,现有n件物品,重量分别是 c1,c2,c3,…cn,价值分别为 w1,w2,w3,…wn。问能否从这n件物品中选择若干件放入背包中,使得放入的物品的价值和最大? [基本思路]:01 背包问题 0 表示不放入,1 表示放入。用子问题定义状态:即 f[i][v] 表示前i件物品恰放入一个容量为 v 的背包可以获取得到的最大价
2015-06-04 15:57:52 956
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人