
算法
java_wliang
这个作者很懒,什么都没留下…
展开
-
棋盘覆盖问题的算法实现
在一个2k x 2k ( 即:2^k x 2^k )个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。 实现的基本原理是将2^k * 2^k的棋盘分成四块2^(k - 1) * 2^(k - 1)的子棋盘,特殊方格一原创 2013-10-08 21:59:38 · 3097 阅读 · 0 评论 -
KNN 最邻近规则分类
KNN最邻近规则,主要应用领域是对未知事物的识别,即判断未知事物属于哪一类,判断思想是,基于欧几里得定理,判断未知事物的特征和哪一类已知事物的的特征最接近;K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个转载 2014-08-08 09:06:18 · 984 阅读 · 0 评论 -
杭电ACM1045
找的贪心的题目,开始总觉得用穷举法会不行,想不到好的算法,百度找找前辈们的AC,发现穷举法还是可以的,就参考了下这题给出的图的行列范围较小,所以可以暴力来做。要解决的问题就是怎样方便的枚举完所有可能的情况,并且得到放置blockhouse的最大值。这要在dfs上下功夫了。代码中的dfs原型为dfs(int i,int num)。其中 i 为记录该次搜索已经到达转载 2013-11-07 20:23:39 · 930 阅读 · 0 评论 -
杭电ACM1024
动态规划还是不怎么会灵活使用,对于决策方程的推导需要不断联系,参考网上的关于本题的部分推导写出来的Max Sum Plus PlusNow I think you have got an AC in Ignatius.L's "Max Sum" problem. To be a brave ACMer, we always challenge ourselves to mo原创 2013-11-05 22:28:48 · 1740 阅读 · 0 评论 -
杭电ACM1003
学习动态规划,就选了一些动态规划的ACM题目练练,这是一道比较简单的题目我是通过在输入元素的时候就开始计算比较,结构体记录最大子段和的首尾位置Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,原创 2013-11-05 16:25:53 · 808 阅读 · 0 评论 -
0-1背包问题
0-1背包问题描述如下:有一个背包总容量为sum ,现在有N个物品准备放入背包,每个物品都有重量W[i]和该物品的价值V[i] , 但是考虑到背包的容量只有sum,所以需要进行选择性的放入,从这N个物品中选取部分或者全部,使得最后背包中物品的价值value达到最大值。由于问题的特殊性,没一件物品的选择只有两种情况。也就是装入或者不装入,不会有装入部分或者重复装入的情况发生。用X[转载 2013-10-21 16:15:45 · 736 阅读 · 0 评论 -
动态规划——最大子段和问题
给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1 例如,当(a1,a2,a3,a4,a4,a6)=(-2,11,-4,13,-5,-2)时,最大子段和为20。原创 2013-10-13 20:48:10 · 1946 阅读 · 0 评论 -
动态规划——最长公共子序列问题
动态规划算法与分治算法类似,基本思想都是将待解问题分解成若干个子问题,先求解子问题,然后根据子问题的解得到原问题的解。在用分治法求解的时候有些子问题被重复计算了很多次。动态规划算法则有效的将子问题的解保存起来,在需要的时候再找出来使用,这样就避免了大量的重复计算。为了达到这样的目的,可以用一个表来记录所有已经解决的子问题的答案。最长公共子序列问题:一个给定序列的子序列是转载 2013-10-13 15:43:01 · 834 阅读 · 0 评论 -
动态规划——矩阵连乘的问题
动态规划算法与分页发类似,基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分冶法不同的是,适合于用动态规划法求解的问题,经分解得到的子问题往往不是相互独立的。所以若用分冶法解这类问题,则分解得到的子问题太多,以至于最后解决原问题需要消耗指数时间。在分冶法中,保存下了已解决的子问题的答案,在需要时再找出以求得的答案,就可以避免大量重复计转载 2013-10-12 19:56:46 · 1107 阅读 · 0 评论 -
手机九宫格滑锁密码的所有密码组合计算
题目好像是哪个公司的笔试题,同学给我的,然后自己就试着写写,才学浅陋,花了蛮多时间写的题目大致意思如下: 手机九宫格解锁图案如上,假设把一次先行后列标记九个圆一次为1,2,3,4,5,6,7,8,9这九个数字,求所有合法的密码情况合法的密码我们假设要求如下:1、假设密码的长度至少为2,最长当然为92、密码中不能有重复的数字出现,比如不能同原创 2013-10-10 15:01:34 · 19268 阅读 · 1 评论 -
动态规划——国王挖掘金矿
有一个国家,所有的国民都非常老实憨厚,某天他们在自己的国家发现了十座金矿,并且这十座金矿在地图上排成一条直线,国王知道这个消息后非常高兴,他希望能够把这些金子都挖出来造福国民,首先他把这些金矿按照在地图上的位置从西至东进行编号,依次为0、1、2、3、4、5、6、7、8、9,然后他命令他的手下去对每一座金矿进行勘测,以便知道挖取每一座金矿需要多少人力以及每座金矿能够挖出多少金子,然后动员国民都来挖金原创 2014-10-21 17:07:12 · 2179 阅读 · 0 评论