- 博客(32)
- 资源 (8)
- 收藏
- 关注
原创 子序列最大和(杭电acm1003)
Max SumProblem DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (
2012-03-25 21:50:14 4466 2
转载 硬盘资料与知识大全
【硬盘资料与知识大全】目录:一:浅谈硬盘发展史 二:硬盘“空间”与“文件大小”秘密 三:新手学堂之看图识硬盘 四:跳出硬盘
2012-03-10 15:38:28 10003
原创 常见算法简介
A*搜寻算法,俗称A星算法: 在此算法中,g(n)表示从起点到任意顶点n的实际距离,h(n)表示任意顶点n到目标顶点的估算距离。 因此,A*算法的公式为:f(n)=g(n)+h(n)。Dijkstra 算法:算法解决的是有向图中单个源点到其他顶点的最短路径问题。
2011-12-20 19:23:11 646
转载 Ubuntu下OpenCV源码编译安装 转
环境:ubuntu 10.04 + OpenCV 2.2.0OpenCV源码下载:http://sourceforge.net/projects/opencvlibrary/安装必要的库:sudo apt-get install cmake build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev
2011-12-06 14:14:24 775
原创 不可积分函数
正态分布函数的密度函数是不可积的,虽然它的原函数(即不定积分)存在,但不能用初等函数表达出来。 习惯上,如果一个已给的连续函数的原函数能用初等函数表达出来,就说这函数是“积得出的函数”,否则就说它是“积不出”的函数。比如下面列出的几个积分都是属于“积不出”的函数,但是这些积分在概率论,数论,光学,傅里叶分析等领域起着重要作用。(1)∫e^(-x²)dx;(2)∫(sinx)/xdx;(3)
2011-12-02 23:16:08 17908
转载 磁盘术语、常识
硬盘的基本知识尽管硬盘不能用摩尔定律来给他定义发展历程,但是更新换代是肯定必不可少的,不管是自身的发展需要也好,还是其它设备给硬盘行业的间接施压也好我们总是需要看到发展看到进步。硬盘是一个半导体与机械的集合体所以他的发展并不能如半导体那样迅猛,虽然我们仍然看到的是一个技术稳步发展的局面,但是硬盘技术又开始前进了,并且加大了步伐。 因为太多的周边发展已经将硬盘推到了一
2011-12-01 00:48:54 8336 1
原创 求解gcd(a,b)=ax+by (扩展欧几里得算法)
欧几里德算法用来求两个数的最大公约数的算法。具体如下int gcd(int a,int b){ if(b == 0) return a; return gcd(b,a%b); }扩展欧几里德算法(求解gcd(a,b)=ax+by )分析:ax1+by1=gcd(a,b) =gcd(b,a%b)=bx2
2011-11-15 20:34:30 2524
原创 北大acm 1001 Exponentiation
#include#include#includeusing namespace std;void mul(int *c,int *a,int *b) //c=a*b{ int i,j,k,carry,result; memset(c,0,sizeof(int)*126); for(j=0,carry=0;j {
2011-11-14 22:17:42 759
原创 字符串匹配(模式匹配)KMP BM
text字符串中找到pat模式串。//KMP算法#include void setup(char pat[], int fail[]){ int length = strlen(pat); int i, j; fail[0] = -1; for (i = 1; i for (j=fail[i-1];
2011-11-14 13:21:18 501
原创 判断数组中有没有连续和为0
数组a[n],求出sum[i]=a[0]+……+a[i]。然后判断有没有sum[i]==sum[j] bool zero_sum(int*a,intn){ int i; for(i=1;in;i++) a[i]+=a[i-1]; sort(a,n); for(i=1;in&&a[i]==a[i-1];i++)
2011-11-14 12:33:40 682
原创 表示成两数的平方和(已知R,求X,Y,使X^2+Y^2=R)
两个指针一个从1开始递增,一个从sqrt(n)递减。int main(){ int n,x,y,sn; cin>>n; sn=sqrt(n); x=1,y=sn; while(xy) { if(x*x+y*y==n) x++,j--; if(x*x+y*yn)
2011-11-14 11:34:39 1122
原创 三个已排序的数组a,b,c,求i,j,k使a[i]=b[j]=c[k]
for(i=j=k=0;in&&jm&&kl;) if(a[i]b[j]) i++; else if(b[j]c[k]) j++; else if(c[k]a[i]) k++; else output(i,j,k),exit;
2011-11-14 11:26:46 809
转载 求两个排好序的数组合并之后的中位数
void sort(int [], int);int median(int x[], int y[], int n){ int first_X = 0; /* lower element of x[] */ int first_Y = 0; /* lower element of y[] */ int
2011-11-14 11:07:57 911
原创 求出和为固定值的所有连续整数
给定和为n,两个指针 l、r从0到n扫描, 记录sum=a[l]+……+a[r]。if sumn l++; if(sum==n) output, r++,l++;#include #include void main(void){ long left, right; /* left and right bound */ lon
2011-11-14 11:00:10 568
原创 指数计算 m^n (可以扩展到矩阵的n次方)
原理: m^n= 1 (n==0) =(m^k) (n==2k) =m*m^2k (n==2k+1) ///////代码//递归方式unsigned long recursive_power(unsigned long m, unsigned long n){ unsigned long temp; if (n ==
2011-11-14 10:50:31 1622
转载 整数的分割数目
//只是输出分割的数目unsigned long compute(int, int);unsigned long int_part_no(int);unsigned long int_part_no(int n){ return compute(n, n); /* convert to another form */}/* -------------
2011-11-14 10:43:41 639
转载 集合的所有分割
#include #include /* for malloc() */#define ALWAYS 1void display(int *, int);void set_partition(int n){ int *code, *maxi; /* arrays for code[], maxi[
2011-11-14 10:41:21 485
转载 k个元素的子集 C(n,k)
#include #include #define MAXSIZE 20#define LOOP 1void main(void){ int set[MAXSIZE]; int n; int k; int position; int i, j; char line[
2011-11-14 10:40:19 596
转载 列出所有排列(字典顺序)
#include #include #define LOOP 1#define SWAP(a,b) { int t; t = a; a = b; b = t; }#define REVERSE(a,b) { int i, j; \ for (i=(a)
2011-11-14 10:39:18 513
原创 列出所有排列(旋转法)
#include #include #define MAXSIZE 20#define ROTATE(p) { int i, temp; \ temp = perm[p]; \ for (i = p-1; i >= 0; i
2011-11-14 10:38:20 513
转载 列出所有子集(格雷码顺序)
#include #include #define MAXSIZE 20#define YES 1#define LOOP 1#define FLIP_DIGIT(x) x = ((x) == '0' ? '1' : '0')#define FLIP(x) x = (1
2011-11-14 10:37:06 543
转载 列出所有子集(字典顺序)
#include #include #define MAXSIZE 20#define LOOP 1void main(void){ int set[MAXSIZE]; int n, i; int position; char line[100]; printf("\nAl
2011-11-14 10:36:01 628
转载 列出所有子集(二进制递增方式)
#include #include #define MAXSIZE 20#define LOOP 1void main(void){ char digit[MAXSIZE]; int i, j; int n; char line[100]; printf("\nDirect Genera
2011-11-14 10:34:48 716
转载 匈牙利算法
匈牙利算法:格式说明输入格式:第1行3个整数,V1,V2的节点数目n1,n2,G的边数m第2-m+1行,每行两个整数t1,t2,代表V1中编号为t1的点和V2中编号为t2的点之间有边相连输出格式:1个整数ans,代表最大匹配数邻接矩阵-C#include#include intn1,n2,m,ans;intresult[101];//记录V2中的点
2011-11-14 10:29:18 308
原创 希尔排序
#includeusing namespace std;void Shell(int a[],int n) //Shell排序{ int i,j,gap,tmp; for(gap=n/2;gap>0;gap/=2)//要确保gap能取到1 {//步长为gap的插入排序 for(i=gap;i {
2011-11-14 09:41:52 333
原创 快速排序
#includeusing namespace std;int part(int *a,int l,int r){ int x=a[l]; int i,j,tmp; for(i=l,j=l+1;j { if(a[j] { i++; tmp=a[j];
2011-11-14 09:41:24 292
原创 归并排序
#includeusing namespace std;int b[1000];void merge(int *a,int l,int r) //Shell排序{ if(lr) { int m=(l+r)/2; merge(a,l,m); merge(a,m+1,r); //copy
2011-11-14 09:39:59 290
原创 堆排序
#includeusing namespace std;void adjustHeap(int *a,int i,int n){ int ch,tmp; while(i*2+1n) { ch=i*2+1; if(ch+1n&&a[ch]a[ch+1]) ch+=1; if(a[
2011-11-10 15:22:44 266
转载 安装pthread的manpages(man 手册)ubuntu 10.04
由于学习多线程编程,所以用到pthread,但是man的时候却发现没有pthread函数库的手册页,然后安装$sudo apt-get install glibc-doc 安装以后,发现还是有很多函数不全,只有一小部分pthread的函数,使用man -k pthread或apropos pthread可以查找到当前manpages中关于pthread的手册。安装manpages-p
2011-11-06 00:02:00 1094
转载 路由软件Quagga安装教程
Quagga是一款功能比较强大的开源路由软件,支持rip,ripng,ospfv2,ospfv3,bgp等协议。目前最新版本为Quagga 0.99.17。安装Quagga的目的是使装有linux(我采用的是Ubuntu10.04LTS)系统的电脑变成一台路由器,以便今后的实验。之所以选择Quagga是因为它的操作和Cisco的操作是比较相似的。今天用到的电脑需要多块网卡支持(至少两块)。
2011-11-06 00:00:16 2237
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人