自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 贪心:POJ2376

题目:     给定一个时间T和N个时间区间,求最少需要多少个区间覆盖总区间[1,T],无法覆盖区域[1,T]时输出-1。    例如T=10,有3个区间[1,7],[3,6],[8,10],则最少需要两个区间来覆盖,选择区间1和区间3。 这里我仅仅给出最重要的原理: 首先,选择的起始区间必须是从1开始的。如果没有,就不能成功覆盖。 然后,我们该选择到哪一个时间节点结束的区间呢?

2015-05-21 09:36:56 592

原创 贪心算法:区间调度

问题描述: 有n项工作,每项工作分别在si开始,ti结束。对每项工作,你都可以选择参加或不参加,但选择了参加某项工作就必须至始至终参加全程参与,即参与工作的时间段不能有重叠(即使开始的时间和结束的时间重叠都不行)。问最多可以参与多少工作呢? 贪心思想: 每次选择最早结束的。  思想很容易得到,但这是为什么呢?  首先,该算法选出的区间是互不重叠的。  其次,设fi为该算法所接受的第i个

2015-04-08 22:45:30 889

原创 BFS:迷宫的最短路径

宽度优先搜索思想: 宽度优先搜索总是先搜索目前距离初始状态最近的状态。对于同一个状态,宽度优先搜索只经过一次。 问题重述: 给定一个大小为N*M的迷宫。迷宫由通道和墙壁组成,每一步都可以向相邻的上下左右四格的通道移动。请求出从起点到终点所需的最小步数。请注意,本题假定从起点一定可以移动到终点。 代码: #include #include #include #define MAX_N 12

2015-04-08 22:14:00 1161

原创 DFS:Lake Counting POJ 2386

题目大意: 有一个大小为N*M的园子,雨后积起了水。八连通的积水被认为是连接在一起的。请求出院子里共有多少水洼? 样例 10 12 W........WW. .WWW.....WWW ....WW...WW. .........WW. .........W.. ..W......W.. .W.W.....WW. W.W.W.....W. .W.W......W. ..W.......W.

2015-04-08 22:01:45 723

原创 贪心算法:硬币问题

硬币问题 问题描述: 有1元,5元,10元,50元,100元若干枚,现在要用这些硬币来支付A元。最少需要多少枚硬币呢?假设至少存在一种方案。 贪心思想: 很正常的想,我们自然想要先用100块,直到不能再用,然后用50元。依次进行下去。 正确性:   不妨我们假设利用贪心思想得到的各个硬币的使用个数为a1,a2,a3,a4,a5.现假设有更少的选择,不妨设为b1,b2,b3,b4,b5

2015-04-08 12:54:00 1348

原创 动态规划篇:钢条切

钢条切割 方案数 这里我们认为如果两次切割之后得到的钢条数量和长度一样的话,就算是一种切割。故我们不妨按照长度非递减序列进行切割。则原问题可以转化为 然后可以利用分类的方法进行递推。 个人分析 刻画最优解的结构特征。 首先,我们可以知道,对于任何一个给定的钢条来说,对它进行划分的数量是有限的,因此,必然存在最优分割

2015-04-01 18:12:13 646

原创 动态规划算法笔记

动态规划算法笔记 如何设计一个动态规划算法?             一般有如下四个步骤:  刻画一个最优解的结构特征。递归地定义最优解的值。计算最优解的值,通常采用自底向上的方法。利用计算出的信息构造一个最优解。 动态规划的一些特征 记忆化存储,对一个子问题不进行多次计算,典型的时空权衡(time-memory trade-o

2015-04-01 12:38:09 389

原创 动态规划:矩阵链的乘法

矩阵链的乘法 矩阵相乘的基本伪代码 MATRIC-MULTIPLY(A,B) if (A.columns!=B.rows) error"incompatible dimensions"; else let C be a new A.rows*B.columns matrix for i=1 to A.rows for j=1 to B.columns C[i][j]=0;

2015-03-31 20:45:36 428

原创 循环不变式的特征

循环不变式 初始化:循环的第一次迭代之前,它为真。 保持:如果循环的某次迭代之前它为真,那么下次迭代之后仍为真。 终止:在循环终止时,不变式为我们提供了一个有用的性质,该性质有助于证明算法是正确的。

2015-03-28 18:36:50 544

原创 NP完全问题的特殊性

第一,迄今为止,不曾 找到一个对NP完全问题有效的算法,但是也没有人可以证明NP完全问题不存在有效算法; 第二,如果一个NP完全问题存在有效解法,那么所有的NP完全问题都存在有效的算法。这一点着实令人吃惊。 第三,有些NP完全问题类似于一些已经有有效算法的问题。

2015-03-28 16:42:13 486

原创 归并排序算法

MERGE(A,p,q,r) n1=q-p+1; n2=r-q; for(i=1;i<=n1;i++) L[i]=A[p+i-1]; for(i=1;i<=n2;i++) R[i]=A[q+i]; L[n1+1]=MAX; R[n2+1]=MAX; i=j=1; for(k=p;k<=r;k++) { if(L[i]<R[j]) { A[k]=L[i];

2015-03-11 23:03:00 346

原创 选择排序算法

for i=1 to( A.length-1) flag=i for j=i+1 to A.length if A[j] flag=j if (flag!=i) swap(A[i],A[flag])

2015-03-11 22:45:14 380

原创 插入排序伪代码

INSERT-SORT #include int a[200]; void Insert_sort(int n) { int j,key,i; for(j=1;j<n;j++) { key=a[j]; i=j-1; while(i>=0 && a[i]>key) a[i+1]=a[i--]; a[i+1]=key; } } int main() { int n,i

2015-03-11 22:28:30 1022

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除