给出G种宝石,B个包,和S,S代表到时候每种颜色的宝石凑齐S个能变成一个魔法石
每个包里有N种宝石,分别为c1,c2.......
然后两人轮流拿包,每个包只能拿一次,拿出包把宝石放地上。
如果能变成魔法石则拿走魔法石,下一次还这个人拿包,没变成则换人。
魔法石的个数就是获得分数,问两人最优的时候分差是多少。
状压记忆化搜索
一共21个包,状压存当前取包的状态
无论怎样取...
分类:
其他好文 时间:
2014-11-08 18:15:07
阅读次数:
151
原文:http://blog.csdn.net/java_jh/article/details/20068915迟点出更新的.这个还有BUG.因为软引应不给力了.2.3之后前几天的原文有一个线程管理与加载源过多,造成浪费流量的问题.下面对这进下改进的一些说明(红色为新加)这两天一直在优化这个问题.g...
分类:
移动开发 时间:
2014-11-08 13:12:57
阅读次数:
242
微软自带的strcpy函数: (不完善,4分)
char * strcpy(char * dest,const char *src)
{
char *tmp = dest;
while ((*dest++ = *src++) != '\0')
return tmp;
}
微最完善的strcpy函数: (推荐使用,10分)
char * strcpy( char *d...
分类:
其他好文 时间:
2014-11-07 19:04:47
阅读次数:
198
通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的。一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构。重构的好处有很多,其中一点,就是对代码进行优化,提高软件的性能。下面我们就从几个方面来了解Android开发过程中的代码优化。1)...
分类:
移动开发 时间:
2014-11-07 11:13:00
阅读次数:
215
动态规划算法其实就是一种优化的算法,其基本思想就是将待求解的问题分解成若干子问题,先求解子问题(这些解不是独立的),然互从这些子问题中得到原问题的解。其最终得到的结果往往是最优解。和贪心法不同的是,动态规划法不可以将一个整体进行分割。
举个简单的例子:给出7个数,1,2.....7,从中选出不超过3个使得这3个数的和不超过20.求解时我们应该一步一步进行:
...
分类:
编程语言 时间:
2014-11-07 09:54:51
阅读次数:
186
1.动态规划
动态规划的方法与方法类似,英文“dynamic programming”,这里的programming不是程序的意思,而是一种表格法。都是通过组合子问题的解来解决原问题,分治方法将划分为互不相交的子问题,递归的求解子问题,再将它们的解组合起来求出原问题的解。与之相反动态规划应用于子问题的重叠情况,即不同的子问题具有公共的子问题,子问题的求解是递归进行 ...
分类:
其他好文 时间:
2014-11-06 23:42:25
阅读次数:
562
转载,原文地址:http://blog.csdn.net/xidianzhimeng/article/details/20856047Sparsity 是当今机器学习领域中的一个重要话题。John Lafferty 和 Larry Wasserman 在 2006 年的一篇评论中提到:Some cu...
分类:
其他好文 时间:
2014-11-06 23:18:45
阅读次数:
2348
题目大意:有N件物品,给你每件物品的重量,现在要搬2*k件物品到另
一栋楼上,每次搬两件物品,每次耗费的疲劳度为两件物品重量差的平
方。问:搬完2*k件物品,耗费的疲劳度最少为多少?
思路:重量相差越小,则重量差的平方越小。所以先对重量进行排序,所
选的一对物品,肯定是相邻的两件物品。设d[i][j]为前第i件物品选择第j对
物品的时候,所消耗的最小疲劳度。
前i件物品,若选择第i件物品,肯定是和第i-1件物品配对。
这时候dp[i][j] = dp[i-2][j-1] + (w[i]-w[i-1])*(w...
分类:
其他好文 时间:
2014-11-06 21:56:47
阅读次数:
239
一、钢条切割二、矩阵链乘法三、最优三角剖分四、连续子数组之和五、单词分割总结:写递归方程的时候,往往不直接是所要求的最优解,所需最优解可能还需要根据递归方程解出来的结果,再次计算。例如,连续子数组之和,它并不是直接求解子数组之和最大,并不是直接根据它来列出递归方程。
分类:
其他好文 时间:
2014-11-06 21:38:15
阅读次数:
122
此题是算法导论贪心算法的16.1-5题。
问题描述:
考虑一个活动选择问题的一个变形:每个活动ai除了开始和结束时间外,还有一个值vi。目标不再是求规模最大的兼容活动子集,而是求值之和最大的兼容活动子集。也就是说,选择一个兼容活动子集A,是的vk(k属于A)之和最大化。设计一个多项式时间的算法求解此问题。
思路:
此题是活动安排问题的一个变形。最优化目标不再是最大兼容活动子集,所以...
分类:
其他好文 时间:
2014-11-06 17:36:27
阅读次数:
158