题目:输入一个正整数数组,把数组里面所有数字拼接起来排成一个数,打印能拼接出的所有数字钟最小的一个。例如:输入数组{3,,32,321} ,则打印出来的最小数是321323.分析:这里一个需要注意的是,组成的数有可能溢出,所以这是一个大数问题。对于大数问题,我们又想到不能直接这么组成一个数字,可以采...
分类:
其他好文 时间:
2014-07-02 20:41:40
阅读次数:
218
Mergeksorted linked lists and return it as one sorted list. Analyze and describe its complexity.合并k个排序列表解题思路是:取出 k个元素进行堆排序,每次取出最小的元素,插入链表中即可注意本题利用了c++...
分类:
其他好文 时间:
2014-07-02 20:16:54
阅读次数:
273
题目:最近点对(大数据)。
分析:分治法。首先,将所有点按很坐标排序;然后,利用分治求解。
1.将问题转化为两个相同大小的子区间分别求解;
2.中位点为中心,当前最小距离为半径的区间直接枚举求解;
3.求出上两中情况的最小值返回。
说明:这么经典的题目,今天第一次做。
#include
#include
#in...
分类:
其他好文 时间:
2014-07-02 09:41:14
阅读次数:
202
(一)归并排序
分析:
(1)划分问题:把序列分成元素个数尽量相等的两半。
(2)递归求解:把两半元素分别排序。
(3)合并问题:把两个有序表合并成一个。(每次只需要把两个序列的最小元素加以比较,删除其中的较小元素并加入合并后的新表)
#include
using namespace std;
const int MAXN = 1000;
int A[MAXN], T[MAXN];
...
分类:
其他好文 时间:
2014-07-02 09:22:26
阅读次数:
243
本文提供两种方法,一种将小数变成字符串,然后用”.“来截取,去.后的子字符串长度。还有一种是讲小数*10的N次方,比如10的8次方再对8次方取余数,再不断对10求余,直到对10求余的结果不为0。
相比来说,第一种方法要好不少,理由是这样的,比如1.000004在很边界的时候或者0.99999这样子PHP处理会有问题,会有误差,导致得到的位数不一样。而且精度难以把握,所以处理这种跟边界有关的问题最...
分类:
Web程序 时间:
2014-07-02 09:10:30
阅读次数:
245
题目链接:uva 11754 - Code Feat
题目大意:求一个数N,给出C和S,表示有C个条件,每个条件有X 和 k,然后是该个条件的k个yi,即NmodX=yj,输出满足的最小的S个N,要求正整数。
解题思路:total为所有的k的乘积,也就是可以作为一组完整限定条件的可能数,当个确定条件可以用中国剩余定理处理。但是如果total太大的话,处理的情况比较多。不过total数大...
分类:
其他好文 时间:
2014-07-02 09:09:01
阅读次数:
184
感觉这种算法还是比较局限的吧,重复搜索是一个不好的地方,而且需要高效的估值函数来进行强剪枝,这点比较困难。
迭代搜索深度是一个比较炫酷的搜索方式,不过有点拿时间换空间的感觉。
首先迭代深度比较搓的写法是,首先设置一个阀值MaxH,初始为最小值。
当在搜索深度Depth
另外一种比较吊的写法是二分搜索深度,若搜到则减小阀值,否则增大阀值。
总之,迭代深度搜索就是通过改变深搜的深度来寻找最...
分类:
其他好文 时间:
2014-07-02 09:01:04
阅读次数:
247
这个是约瑟夫的另一个变型,变为总共有2*k个人,先是K个好人后是k个坏人,要求前k次都要杀坏人,即在杀掉第一个好人之前就要把所有的坏人都杀光,所以需要我们求出满足这个条件的最小的m值;
由约瑟夫的递归模型可以发现,我们因为他的递归是从最后杀的人递归到原有的人数,所以我们可以吧顺序反过来,等价于最后杀掉k个坏人,再杀好人,这样在递归的时候就是先知道起始位置(先杀的人),这样就能迭代,由有好人...
分类:
其他好文 时间:
2014-07-02 08:55:40
阅读次数:
188
英语渣就是这点不好。。。
巨恶心这种描述多的题。。
大意就是求 从一个点出发,到某些点,然后又从那些点返回的距离之和的 最小值。
Dijkstra+邻接矩阵。 正向建图,求出出发距离,然后swap边,求出 返回距离。
注意的是 车可能有重复的。某个点有多少车就需要乘以车的数量。
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-07-02 07:16:49
阅读次数:
253
题目连接:uva 11916 - Emoogle Grid
题目大意:有一问题,在M行N列的网格上涂K种颜色,其中有B个格子不用涂色,其它每个格子涂一种颜色,同一列的上下两个相邻的格子不能涂相同的颜色。给出M,N,K和B个格子的位置,求出总方案数模掉1e8+7的结果R。现在已知R,求最小的M。
解题思路:有确定不用涂色格子的区域作为不变部分,总数通过计算为tmp,外加可变部分的第一行,...
分类:
其他好文 时间:
2014-07-02 06:55:29
阅读次数:
247