
算法
rocfu
钻研技术爱游戏屌丝一枚
展开
-
腾讯编程初赛0
小明系列故事——买年货 Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 1480 Accepted Submission(s): 636 Problem Description原创 2013-05-16 22:45:40 · 677 阅读 · 0 评论 -
编程之美-数组分割
编程之美'数组分割'和扩展将一个数组划分成两个子数组,要求他们的和最接近1.长度要求相等的情况: 2.长度没有要求的情况:都能用动态规划解决#include#includeusing namespace std;void ArraySplit1(int a[], int n)//两个子数组长度要求相等{int原创 2013-10-09 19:48:21 · 903 阅读 · 0 评论 -
算法:数字拆分(重复、无重复)
如果单纯是要求拆分数,可用生成函数解决。以下是要求输出所有拆分:无重复:形如6=1+5=1+2+3=2+4,共3种无重复拆分方式重复: 形如 6=1+5=1+1+4=1+1+1+3=1+1+1+1+2=1+1+1+1+1=1+1+2+2=1+2+3=2+4=2+2+2=3+3, 共10种重复拆分方式原创 2013-05-16 23:23:56 · 3323 阅读 · 0 评论 -
布隆过滤器
原文链接:http://www.google.com.hk/ggblog/googlechinablog/2007/07/bloom-filter_7469.html2007年7月3日 上午 09:35:00发表者:Google(谷歌)研究员 吴军 在日常生活中,包括在设计计算机软件时,我们经常要判断一个元素是否在一个集合中。比如在字处理软件中,需要检查一转载 2013-10-03 12:22:49 · 627 阅读 · 0 评论 -
算法:字符串匹配、BF/KMP/近似匹配
#include#includeusing namespace std;#define MAXSTR 100//----------------BF---------------- 时间o(n*m)int StringMatch_BF(char *str, char *pat) //O(M*N) M=|str| , N=|pat|{ if(str==NU原创 2013-05-20 17:20:46 · 948 阅读 · 0 评论 -
算法:完美洗牌算法:一个长度为2n的(整型)数组元素为 a1 a2 ... an b1 b2 ... bn
问题描述:一个长度为2n的数组元素为 a1 a2 ... an b1 b2 ... bn要求: 用O(1)的空间代价, 在O(n)时间内把数组变成 b1 a1 b2 a2 b3 a3 ... bn an (分治法时间复杂度O(nlogn))采取置换的方法,当需要保证似乎循环无遗漏置换。需要用到数论原根等证明定理。http://user.qzone.qq.com/4143原创 2013-05-17 16:34:19 · 1438 阅读 · 0 评论 -
算法:最长递增子序列、最长公共子串
#include#include#define MAXSEQUENCE 1000#define MAXDIF 1000using namespace std;void Print_LCS(int (*rec)[100],int a[], int b[], int i, int j);//---------最长递增子序列-----------//动态规划 O(原创 2013-05-16 23:31:36 · 590 阅读 · 0 评论 -
腾讯编程初赛4
小明系列问题——小明序列http://acm.hdu.edu.cn/showproblem.php?pid=4521Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 925 Accepted Submission(s):原创 2013-05-16 22:03:39 · 491 阅读 · 0 评论 -
算法:背包问题
背包问题用逆序减少空间复杂度的情况下,//背包问题,如果是多维背包(质量,容积,个数),则加矩阵维度;如果是01背包,则逆序内循环,如果是完全背包(每种物品个数不限),则顺序内循环,如果是混合背包(限制每种物品的个数)。#includeusing namespace std;#define MAXN 110#define MAXK 110原创 2013-05-16 22:49:34 · 708 阅读 · 0 评论 -
编程之美-数组分割
编程之美'数组分割'和扩展(扩展只需要转化为整数数组,加个固定的偏移)将一个数组划分成两个子数组,要求他们的和最接近1.长度要求相等的情况: 2.长度没有要求的情况:都能用动态规划解决#include#includeusing namespace std;void ArraySplit1(int a[], int n)原创 2013-10-09 19:44:43 · 205 阅读 · 0 评论