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