- 博客(18)
- 收藏
- 关注
转载 贪心算法之单源最短路径
一、前言 最短路径算法,顾名思义就是求解某点到某点的最短的距离、消耗、费用等等,有各种各样的描述,在地图上看,可以说是图上一个地点到达另外一个地点的最短的距离。比方说,我们把地图上的每一个城市想象成一个点,从一个城市到另一个城市的花费是不一样的。现在我们要从上海去往北京,需要考虑的是找到一条路线,使得从上海到北京的花费最小。有人可能首先会想到,飞机直达啊,这当然是时间消耗最小的方法,但是
2017-04-19 20:38:55
4647
转载 动态规划之最优二叉树
一、什么是最优二叉查找树 最优二叉查找树: 给定n个互异的关键字组成的序列K=,且关键字有序(k1 图一显示了给定上面的概率分布pi、qi,生成的两个二叉查找树的例子。图二就是在这种情况下一棵最优二叉查找树。 概率分布: i 0 1 2 3 4
2017-04-19 19:22:52
1753
转载 动态规划之01背包问题
题目描述: 有编号分别为a,b,c,d,e的五件物品,它们的重量分别是2,2,6,5,4,它们的价值分别是6,3,5,4,6,现在给你个承重为10的背包,如何让背包里装入的物品具有最大的价值总和? name weight value 1 2 3 4 5 6 7 8 9 10 a 2 6 0 6 6 9 9 12
2017-04-19 19:14:32
338
转载 动态规划之图像压缩算法
1、问题描述: 在计算机中,常用像素点的灰度值序列{p1,p1,……pn}表示图像。其中整数pi,1 压缩的原理就是把序列{p1,p1,……pn}进行设断点,将其分割成一段一段的。分段的过程就是要找出断点,让一段里面的像素的最大灰度值比较小,那么这一段像素(本来需要8位)就可以用较少的位(比如7位)来表示,从而减少存储空间。 b代表bits,l代表
2017-04-17 20:55:41
2512
转载 矩阵连乘,动态规划
问题描述:给定n个矩阵:A1,A2,...,An,其中Ai与Ai+1是可乘的,i=1,2...,n-1。确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。输入数据为矩阵个数和每个矩阵规模,输出结果为计算矩阵连乘积的计算次序和最少数乘次数。 问题解析:由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。
2017-04-16 11:40:18
379
转载 贪心算法之删数问题
键盘输入一个高精度的正整数n(位), 去掉任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。 编程对给定的n和s,寻找一种方案,使得剩下的数最小。 Simple Input 178543 4 Simple Output 13 思路: 每一步总是选择一个使剩下的数最小的数字删除,即按高位到低位的顺序搜索,若各位数字递增,则删除最后一个数字;否则删
2017-04-06 20:19:13
451
转载 贪心算法之汽车加油问题
一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应 在哪些加油站停靠加油,使沿途加油次数最少。对于给定的n(n 要求: 输入:第一行有2个正整数n和k,表示汽车加满油后可行驶n公里,且旅途中有k个加油站。接下来的1 行中,有k+1 个整数,表示第k个加油站与第k-1 个加油站之间的距离。第0 个加油站表示出发地,汽车已加满油。第k+1 个加油站表示目的地。 输出
2017-04-06 19:40:02
652
转载 贪心之最优服务次序问题
最优服务次序问题 一、问题描述: 设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1≦i ≦n 。共有s处可以提供此服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n 个顾客等待服务时间的总和除以n。 二、贪心选择策略 假设原问题为T(先假设只有一个服务点),而我们已经知道了某个最优服务系列,即最优解为 A={t(1),t(2)
2017-04-06 19:35:44
1505
转载 学习贪心算法之最优服务次序问题
最优服务次序问题 一、问题描述: 设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1≦i ≦n 。共有s处可以提供此服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n 个顾客等待服务时间的总和除以n。 二、贪心选择策略 假设原问题为T(先假设只有一个服务点),而我们已经知道了某个最优服务系列,即最优解为 A={t(1),t(2)
2017-04-06 19:28:07
2429
转载 算法学习之哈夫曼编码算法
1、问题描述 哈夫曼编码是广泛地用于数据文件压缩的十分有效的编码方法。其压缩率通常在20%~90%之间。哈夫曼编码算法用字符在文件中出现的频率表来建立一个用0,1串表示各字符的最优表示方式。一个包含100,000个字符的文件,各字符出现频率不同,如下表所示。 有多种方式表示文件中的信息,若用0,1码表示字符的方法,即每个字符用唯一的一个0,1串表示。若采
2017-04-04 12:16:03
32889
转载 学到背包问题,太多的考虑综合在一起,问题就很简单了。
P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便
2017-03-30 19:37:08
380
转载 POJ2479,动态规划求最大字段和
题意解释: 给定n个数,求两段连续不重叠子段的最大和。比如1 -1 2 2 3 -3 4 -4 5 -5结果就是 {2,2,3,-3,4} 和{5},也就是两者的和13。 选题原因: 此题是对动态规划中的一个基础知识点求最大字段和的一个简单应用,难度不太大,比较具有代表性,是基础题型。求最大字段和的方法有很多,但DP是最高效的,时间效率为O(n)。有关
2017-03-23 20:46:35
888
转载 学习动态规划之游艇租用问题
一、问题描述: 长江游艇俱乐部在长江上设置了n个游艇出租站1,2,3…,n。游客可以在这些游艇出租站用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j),1算法,计算从游艇出租站1到出租站n所需的最少租金。 二、算法设计: 对于给定的游艇出租站i到游艇出租站j之间的租金为r(i,j),1 三、数据输入: 由文件input.t
2017-03-22 19:42:07
2259
转载 动态规划
动态规划解乘法表问题——算法解题报告 (2387) (0) 举报 收藏 定义于字母表∑{a,b,c)上的乘法表如表1所示 表1∑乘法表 a b c a b b a b c b a c a c c 依此乘法表,对任一定义于∑上的字符串,适当加括号表达式后得到一个表达式。例如,对于字符串x=bbbba,它的一个加括号
2017-03-21 19:19:05
387
转载 有重复元素的排练问题
还是向别人学习的 一道题目,是算法课后作业,时间关系,只能向别人请教了。 Description 设R={ r1, r2, ……, rn }是要进行排列的n个元素。其中元素r1 ,r2 ,……,rn可能相同。试设计一个算法,列出R的所有不同排列。 给定n以及待排列的n个元素。计算出这n个元素的所有不同排列。 Input 输入数据的的第1行是元素个数n,1≤n≤
2017-03-12 16:43:02
413
1
转载 偷来的一个解题方法
POJ 1029 学校老师布置的实验题目,第二次接触POJ编程题目。鉴于用时超出自己的计划时间,只能多向别人多学习学习了。 题意: 银行得到一个可靠的消息,他们的最后一批硬币里面有一个假的,它的重量跟其他的不一样,其他的都有相同的重量,要用一个秤找出那枚假币。那个秤只能判断左边重还是右边重或者一样重。 思路: 如果是‘=’,yes置一,说明它们不可能是假币; 如果是‘>
2017-03-09 20:46:15
306
转载 JAVA解决约瑟夫问题
据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。首先从一个人开始,越过k-2个人(因
2016-12-03 19:03:25
339
原创 菜鸟试手不带头结点单链表倒置
linklist reverse1(linklist head) { linklist i,j; i=head; j=i->next; i->next=NULL; head=i; i=j; while(i){ j=i->next; i->next=head->next; head->next=i; i=j; } return head; }
2016-11-15 20:39:15
557
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅