分治算法一、基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序...
分类:
编程语言 时间:
2015-11-12 11:49:52
阅读次数:
552
一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅...
分类:
编程语言 时间:
2015-10-26 17:00:58
阅读次数:
220
1.对于两个字符串A和B,如果A和B中出现的字符种类相同且每种字符出现的次数相同,则A和B互为变形词,请设计一个高效算法,检查两给定串是否互为变形词。给定两个字符串A和B及他们的长度,请返回一个bool值,代表他们是否互为变形词。测试样例:"abc",3,"bca",3返回:true/*利用数组模拟...
分类:
其他好文 时间:
2015-10-11 19:25:37
阅读次数:
118
题目:现有一个小写英文字母组成的字符串s和一个包含较短小写英文字符串的数组p,请设计一个高效算法,对于p中的每一个较短字符串,判断其是否为s的子串。给定一个string数组p和它的大小n,同时给定strings,为母串,请返回一个bool数组,每个元素代表p中的对应字符串是否为s的子串。保证p中的串...
分类:
其他好文 时间:
2015-08-28 21:13:59
阅读次数:
230
分治法求最大连续和
注意范围是[x,y)
#include
using namespace std;
int maxsum(int *A,int x,int y){
if(y-x==1) return A[x];
int m=x+(y-x)/2;
int maxs = max(maxsum(A,x,m),maxsum(A,m,y));
int v,L,R;...
分类:
编程语言 时间:
2015-08-08 22:52:35
阅读次数:
136
DescriptionThere areNmarbles, which are labeled1, 2,...,N. TheNmarbles are put in a circular track in an arbitrary order. In the top part of the track...
分类:
编程语言 时间:
2015-08-06 10:59:01
阅读次数:
147
A permutation on the integers from 1 to n is, simply put, a particular rearrangement of these integers. Your task is to generate a given permutation f...
分类:
编程语言 时间:
2015-08-06 10:56:21
阅读次数:
155
原题:poj3061题意:给你一个数s,再给出一个数组,要求你从中选出m个连续的数,m越小越好,且这m个数之和不小于s这是一个二分查找优化题,那么区间是什么呢?当然是从1到数组长度了。比如数组长度为10,你先找5,去枚举每一个区间为5的连续的数,发现存在这样的数,那么就可以继续往左找,反之则往右找,...
分类:
编程语言 时间:
2015-08-05 20:21:46
阅读次数:
136
原题:UVA11078题意:给你一个数组,设a[],求一个m=a[i]-a[j],m越大越好,而且i必须小于j怎么求?排序?要求i小于j呢。枚举?只能说超时无上限。所以遍历一遍数组,设第一个被减数为a【0】,之后遇到比a【0】大的数就更新它,再拿这个被减数去减数组中的每一个元素,同时也要不断地更新这...
分类:
编程语言 时间:
2015-08-05 20:07:36
阅读次数:
135
DescriptionJohn Doe is a famous DJ and, therefore, has the problem of optimizing the placement of songs on his tapes. For a given tape and for each so...
分类:
编程语言 时间:
2015-08-05 19:58:38
阅读次数:
138