会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
nodream
博客园
首页
新随笔
联系
订阅
管理
2020年5月27日
针对线段树算法的总结
摘要: 在上学期的数据结构课中,我已经接触了很多树的类型,比如二叉查找树,红黑树,平衡二叉树等。我的身边有一本《算法竞赛进阶指南》一书,在里面我又了解到了线段树、字典树等内容,尤其是线段树引起了我的兴趣。线段树解决的问题很简单,比如有一个序列,{32,15,6,125,522,57,45...123,555
阅读全文
posted @ 2020-05-27 10:52 powerkeke
阅读(189)
评论(0)
推荐(0)
2020年5月26日
圆的排列问题
摘要: 问题 给定n个圆的半径序列,将它们放到矩形框中,各圆与矩形底边相切,求具有最小排列长度的圆排列。 解析 利用回溯法。计算当前遍历到的圆,与前面已经排列好的圆相切之后的圆心坐标,这个地方要注意一点,并不是一定和第i-1个圆相切,比如 所以要从头遍历1-i,找出最大的x坐标,即为此圆的圆心坐标。 根据回
阅读全文
posted @ 2020-05-26 22:33 powerkeke
阅读(858)
评论(0)
推荐(0)
图的m着色问题
摘要: 问题 给定无向连通图G和m种颜色,用这些颜色给图的顶点着色,每个顶点一种颜色。如果要求G的每条边的两个顶点着不同颜色。给出所有可能的着色方案;如果不存在,则回答“NO”。 解析 利用回溯法。涂的时候从颜色1开始到m,每当涂上一个色,要判断第c个点是否可以涂这个色,不可以的话就不再往下涂了,改试另一个
阅读全文
posted @ 2020-05-26 21:03 powerkeke
阅读(581)
评论(0)
推荐(0)
2020年5月20日
最优前缀编码
摘要: 1. 问题 通常的编码方法有固定长度编码和不等长度编码两种。这是一个设计最优编码方案的问题,目的是使总码长度最短。这个问题利用字符的使用频率来编码,是不等长编码方法,使得经常使用的字符编码较短,不常使用的字符编码较长。如果采用等长的编码方案,假设所有字符的编码都等长,则表示 n 个不同的字符需要 l
阅读全文
posted @ 2020-05-20 13:47 powerkeke
阅读(2029)
评论(0)
推荐(2)
相容问题
摘要: 问题 有n项活动申请使用同一个礼堂,每项活动有一个开始时间和一个截止时间。如果任何两个活动不能同时举行,如何选择这些活动,从而使得被安排的活动数量达到最多。 解析 共有10项活动,开始时间和结束时间分别为 {(1,4),(3,5),(5,7),(0,6),(3,8),(5,9),(8,11),(6,
阅读全文
posted @ 2020-05-20 13:25 powerkeke
阅读(182)
评论(0)
推荐(0)
2020年4月28日
LCS算法
摘要: 1. 问题 两个串a和b,求最长的、公共的、子序列的长度。 比如a={1,2,3,4,5},b={3,2,1,4,5}; 那么很明显lcs的长度为3,这个串是{3,4,5},这个公共子串不唯一。 2. 解析 很容易想到一个动态规划做法,dp[i][j]表示,a的前i位,b的前j位的lcs。 3. 设
阅读全文
posted @ 2020-04-28 17:18 powerkeke
阅读(734)
评论(0)
推荐(0)
2020年4月21日
矩阵链乘法
摘要: 1. 问题 给定n个矩阵构成的一个链<A1,A2,A3,.......An>,其中i=1,2,...n,矩阵A的维数为pi-1pi,对乘积 A1A2...An 以一种最小化标量乘法次数的方式进行加全部括号。 换句话说,就是在矩阵链乘问题中,实际上并没有把矩阵相乘,目的是确定一个具有最小代价的矩阵相乘
阅读全文
posted @ 2020-04-21 18:12 powerkeke
阅读(513)
评论(0)
推荐(0)
投资问题(动态规划)
摘要: 1. 问题 设m元钱,n项投资,函数fi(x)表示将x元投入第i项项目所产生的效益,i=1,2,...,n. 问:如何分配这m元钱,使得投资的总效益最高? 2. 解析 我们维护一个二维数组dp,dp[i][j]表示前i个项目投资j元钱的最大效益,使用动态规划时,考虑如何将问题划分成子问题,我们可以先
阅读全文
posted @ 2020-04-21 17:57 powerkeke
阅读(2541)
评论(1)
推荐(0)
选第k小元素:特定分治策略
摘要: 1. 问题 选出数组中第k小元素,采用分治算法。 2. 解析 分:将整个数组分为若干相等的块,各个块排序后找到其中位数。再将各个块的中位数集合,形成一个新数组,再次分块,不断分治后得到最终的中位数m。 治:找到m后,将原数组划分为3个组A1,A2,A3,分别包含小于,等于,大于m的元素。这样可以得到
阅读全文
posted @ 2020-04-21 17:34 powerkeke
阅读(756)
评论(0)
推荐(0)
2020年3月31日
最近对算法
摘要: 1. 问题 设p1=(x1,y1),p2=(x2,y2)...pn=(xn,yn)是平面n上n个点构成的集合S,最近对问你就是找出集合S中距离最近的点对。 2. 解析 采用分治法。 (1)划分:将集合S分成两个子集S1和S2,根据平衡子问题原则,每个子集中大约有n/2个点,设集合S的最近点对是pi和
阅读全文
posted @ 2020-03-31 13:20 powerkeke
阅读(370)
评论(0)
推荐(0)
下一页
公告