
总结
文章平均质量分 74
Smile_Benson
这个作者很懒,什么都没留下…
展开
-
总结: 0-1背包问题 --> 动态规划d…
动态规划(参照刘汝佳代码)1. 有n种物品,每种只有一个.第i种物品的体积是Vi , 重量为Wj , 选一些物品装到一个容量为C的背包, 使得背包里面的物品不超过总体积C的前提下重量尽可能的大. 1<=n<=100,1解法1:状态方程: d(i,j) = max( d(i+1,j) , d(i+1,j-v[i]) +w[j] ); (i > n 时,d原创 2016-05-19 23:15:28 · 485 阅读 · 0 评论 -
总结: 数塔问题 --> dp 问题 (终…
动态规划(参照刘汝佳代码)1.数塔问题: 从树底下往上走求出最大最小值. (数塔如图 编号只代表顺序不代表数值) 1 2 3原创 2016-05-19 23:15:30 · 551 阅读 · 0 评论 -
总结: 求逆序对 递归分治(与poj 22…
题目:给一列数字a1,a2,a3,...,an, 求它的逆序对数, 即有多少个有序对(i,j), 使得i aj.( 1解题思路:1. 一般的暴力枚举法 O(n^2). 肯定超时.2. 采取递归分治的方法.归并排序的思想. 代码:#include #include using namespace std;#define MAX 500003int a[MAX];int原创 2016-05-19 23:15:33 · 270 阅读 · 0 评论 -
总结: 最大连续和 递归分治法 (心…
高效算法(参考刘汝佳代码)给出一个整数序列找出最大连续和分治法:1. 划分问题.2. 递归求解自问题.3.合并问题的解得到原问题的解.证明时间复杂度:证明: 设序列的长度为n,时间复杂度T(n). T(1) = 1T(N) = 2*T(N/2) + N:问题分左右两边递归 + 每次遍历 “原” 序列.原式 = (2^2)*T(N/2^2) + 2 * N= (2^3原创 2016-05-19 23:15:35 · 296 阅读 · 0 评论 -
总结: 广搜 + hash(哈希搜索) (has…
暴力枚举(参照刘汝佳代码)八数码问题(3*3的矩阵给出初始状态和目标状态,矩阵有一个空格,求最小的移动达到目的) 代码:#include #include #include #define MAX 1000000#define MAXHASHSIZE 1000003typedef int state[9];const int dx[4] = {-1,1,0,0};const原创 2016-05-19 23:15:38 · 294 阅读 · 0 评论 -
总结: 素数筛选+素数环(深搜)
暴力枚举(参照刘汝佳代码)素数环是任意临近的两个数相加结果是素数(数组的元素排成环状)代码:#include #include #include using namespace std;#define MAX 1001bool vis[MAX];int a[MAX];bool prime[2*MAX+5];int n;void init(){ memset(p原创 2016-05-19 23:15:40 · 396 阅读 · 0 评论 -
总结: 从N皇后问题里面的归纳深搜…
暴力枚举(参照刘汝佳代码)N-queens_problem-1代码 :#include #include #include using namespace std;#define MAX 10001int result = 0;int c[MAX];int n;void search(int cur){ int i,j; if(cur == n)re原创 2016-05-19 23:15:44 · 381 阅读 · 0 评论 -
总结: 全排列 和 全部子集 (深搜…
暴力枚举(参照刘汝佳代码)找出集合中的全部排列组合:#include #include using namespace std;#define MAX 20void print_permutation(int n,int *p,int *a,intcur) //参数列表 n:个数p:需要排列元素列表{原创 2016-05-19 23:15:46 · 438 阅读 · 0 评论