给定一个整数X和整数A0,A1,…,AN-1,后者已经预先排序并在内存中,求下标i使得Ai = X , 如果X不在数据中则返回i = -1 。明显的解法是从左往右扫描,花费线性时间。但是这个算法没有用到该表已经排序这个事实。折半检索(binary search,二分法检索)策略:/** * Perf...
分类:
其他好文 时间:
2014-07-16 23:25:47
阅读次数:
233
以sample为例子[2,12]区间的RoundNumbers(简称RN)个数:Rn[2,12]=Rn[0,12]-Rn[0,1]即:Rn[start,finish]=Rn[0,finish]-Rn[0,start-1]所以关键是给定一个X,求出Rn[0,X]现在假设X=10100100这个X的二进...
分类:
其他好文 时间:
2014-07-10 13:56:12
阅读次数:
179
给定一个带权的无向连通图,怎样选取一棵生成树,使树上全部边上权的总和为最小,这叫最小生成树.求最小生成树的算法(1)克鲁斯卡尔算法图的存贮结构採用边集数组,且权值相等的边在数组中排列次序能够是随意的.该方法对于边相对照较多的不是非常有用,浪费时间.(2)普里姆算法图的存贮结构採用邻接矩阵.此方法是按...
分类:
其他好文 时间:
2014-07-10 10:48:27
阅读次数:
233
关于时间的操作(Java版)——获取给定时间与当前系统时间的差值(以毫秒为单位)...
分类:
编程语言 时间:
2014-06-28 08:04:54
阅读次数:
311
11105 - Semi-prime H-numbers
题目链接
题意:给定4 * n + 1的集合,在这个集合基础上求这个集合的集合素数,然后求出这个集合中,由两个集合素数相乘得到的数有几个。
思路:先筛出集合素数,然后暴力一下两两组合有多少个即可。
代码:
#include
#include
const int N = 1000005;
int vis[N...
分类:
其他好文 时间:
2014-06-28 07:47:24
阅读次数:
358
UVA 11426 - GCD - Extreme (II)
题目链接
题意:给定N,求∑i=ni=1∑jnj=1gcd(i,j)的值。
思路:lrj白书上的例题,设f(n) = gcd(1, n) + gcd(2, n) + ... + gcd(n - 1, n).这样的话,就可以得到递推式S(n) = f(2) + f(3) + ... + f(n) ==> S(n) = S...
分类:
其他好文 时间:
2014-06-28 00:01:04
阅读次数:
246
#include
#include
#include
#include
using namespace std;
struct Node
{
int data;
struct Node* next;
};
struct Node* create_list(int len)
{
if (len <= 0)
return NULL;
struct Node* head;
...
分类:
其他好文 时间:
2014-06-27 23:54:36
阅读次数:
311
1.引言
题目的意思应该是:在一个给定的字典中,求与给定的字符串的编辑距离不大于2的所有的单词。原先写过两片关于此问题的文章,那两片篇章文章给出两种解决思路:其一是暴力求解法,这种方法最容易想到。就是将词典中的词一一与给定的字符串计算编辑距离,不大于2的输出,大于2的舍弃,这种方法思路简单但是很费时间。其二根据词典中这些词之间的编辑距离建立一个以单词为节点的Trie树,遍历的...
分类:
其他好文 时间:
2014-06-27 23:31:21
阅读次数:
241
感谢微信平台---一天一道算法题--每天多一点进步----其实今天我接下去补上的几题都来自---待字闺中 所以我就原封不动的将它的题目与分析搬过来了原题给定一个数组,我们可以找到两个不相交的、并且是连续的子数组A和B,A中的数字和为sum(A), B中的元素和为sum(B)。找到这样的A和B,满足s...
分类:
其他好文 时间:
2014-06-27 22:31:04
阅读次数:
342
感谢微信平台---一天一道算法题----每天多一点进步--好累啊 现在在用win7自带的输入法 打起来真麻烦 快点把这2天的搞完就重装了还是直接来源于----〉 待字闺中分析给定一个数组A,其中有一个位置被称为Magic Index,含义是:如果i是Magic Index,则A[i] = i。假设A...
分类:
其他好文 时间:
2014-06-27 22:30:28
阅读次数:
277