题目链接地址:http://soj.me/1176题目大意:两头取数。第一个人随机取,第二个人用贪婪算法(每次都取大的),求两人取数在第一个人赢的情况下的最大分差。使用贪婪算法时,如果左右两边相等,取左边的。核心算法:动态规划。 设数组arr[a][b]是在数列区间[a,b]上的最大分差。 递推公式...
分类:
其他好文 时间:
2014-10-09 14:57:33
阅读次数:
159
遇到一个MySQL JDBC的queryTimeout的坑,比较恶心,算是它的BUG,也可以不算,^_^,为啥这么说?看一下下面的解释:现象:用同一个Connection执行大批量SQL的时候,导致了OOM现象。细节现象描述:1、SQL是从某个存储设备上拿到的,不会直接占用大量的内存,每次只会取最多1千条数据过去,也会判定容量不超过多少M。2、每一批SQL执行会单独创建Statement对象,执行...
分类:
数据库 时间:
2014-10-09 01:59:37
阅读次数:
518
类型1有N堆石子,现要将石子有序的合并成一堆,规定如下:每次只能移动任意的2堆石子合并,合并花费为新的一堆石子的数量。设计一个算法,将这N堆石子合并成一堆的总花费最小(或最大)。 此类问题比较简单,就是哈夫曼编码的变形,用贪心算法即可求得最优解。即每次选两堆最少的,合并成新的一堆,直到只剩一堆为止。...
分类:
其他好文 时间:
2014-10-07 14:15:13
阅读次数:
241
一. 功能需求: 1. 可以让玩家摆棋,并让电脑推断是否正确2. 能让电脑给予帮助(给出全部可能结果)3. 实现悔棋功能4. 实现重置功能5. 加入点按键音效果更佳二. 整体设计计:1.核心算法: 递归实现(回溯算法): 思路:按行分别安排皇后(Q),Q数目眼下为8. Q1从第一行第一列開始到最后一...
分类:
其他好文 时间:
2014-10-02 21:37:03
阅读次数:
197
给定长度为N的字符串S,构造长度为N的字符串T,起初T是空串,反复从S的头部或者尾部删除一个字符,加到T的尾部。目标是构造字典序尽可能小的T。尝试如下贪心算法:不断取S头部和尾部较小的字符放到T的尾部。考虑S头部和尾部字符相同的情况。有如下算法:按照字典序比较S和将S反转后的字符串S‘;如果S较小,...
分类:
其他好文 时间:
2014-09-30 20:28:10
阅读次数:
207
贪心算法。需要计算分别以每个字母结尾的且每个字母出现的次数不超过k的字符串,我们设定一个初始位置s,然后用游标i从头到尾遍历字符串,使用map记录期间各个字母出现的次数,如果以s开头i结尾的字符串满足要求,则把结果增加i-s+1。否则的话向前移动s,不断维护map,直到s指向的字母与i相同,从而满足...
分类:
其他好文 时间:
2014-09-29 15:45:31
阅读次数:
202
我们的项目采用log4cpp作为日志输出模块,但在使用中发现,如果是一个Services,或者是在Windows Server版本上,会出现日志无法正常分割的现象。即日志一直往一个文件里持续写,即使超过规定的文件大小,也不会分卷。
log4cpp中分割日志的核心算法为:(假设允许的最大文件个数为4)
1.关闭xxx.log.
2.删除 xxx.log.4
3...
分类:
其他好文 时间:
2014-09-28 17:59:13
阅读次数:
236
克鲁斯卡尔算法(Kruskal's algorithm)是两个经典的最小生成树算法的较为简单理解的一个。这里面充分体现了贪心算法的精髓。大致的流程能够用一个图来表示。这里的图的选择借用了Wikipedia上的那个。很清晰且直观。首先第一步,我们有一张图,有若干点和边例如以下图所看到的:第一步我们要做...
分类:
其他好文 时间:
2014-09-26 14:04:38
阅读次数:
245
上一篇博文中讲了Dijkstra算法,这次博文要讲解的是floyd算法,其中Dijkstra算法是属于贪心算法,而floyd算法是动态规划的一个算法:
具体的算法如下:
其中一个矩阵是用来存放最短路径的,另外一个矩阵是用来存放前驱顶点的;
#include
using namespace std;
#define Max 5
#define Infinity 65535
void ma...
分类:
其他好文 时间:
2014-09-25 11:17:09
阅读次数:
208
分类决策树算法,其核心算法是ID3算法。目前应用在临床决策、生产制造、文档分析、生物信息学、空间数据建模等领域。算法的输入是带类标的数据,输出是树形的决策规则。...
分类:
其他好文 时间:
2014-09-24 13:42:06
阅读次数:
310