自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟

既然选择了远方便只顾风雨兼程......

  • 博客(36)
  • 收藏
  • 关注

原创 kmp算法

通过建立一个next数组,指示当某个元素失配时,子串移动到何处再重新匹配。c++代码:#include #include #define MAXN 200using namespace std;void get_next(string T,int *next);//获得next数组int kmp(string S,string T);//返回子串T在主串S中的下标位置,若不存在,

2017-05-30 15:57:48 195

转载 STL中string类的用法总结

要想使用标准C++中string类,必须要包含#include // 注意是,不是,带.h的是C语言中的头文件,加上using namespace std;string类的构造函数:string(const char *s);    //用c字符串s初始化string(int n,char c);     //用n个字符c初始化此外,string类还支持默认构造函数

2017-05-23 10:54:10 941

原创 循环队列的定义及操作

#include #include #define MAXSIZE 50typedef struct{ int element[MAXSIZE]; int front; //队头指示器 int rear; //队尾指示器} SeqQueue;void InitQueue(SeqQueue *Q);//初始化操作,将Q初始化为一个空的循环队列bool En

2017-05-21 18:32:15 7428

原创 链队列的定义及相关操作

#include #include typedef struct node{ int data; node *next;} Node,*LinkQueueNode;typedef struct{ LinkQueueNode front; //队头指针 LinkQueueNode rear; //队尾指针} LinkQueue;int GetL

2017-05-21 15:54:54 3196

转载 STL中优先队列(priority_queue)的相关操作

基本操作:empty() 如果队列为空返回真pop() 删除对列首元素push() 加入一个元素size() 返回优先队列中拥有的元素个数top() 返回优先队列首元素在默认的优先队列中,优先级高的先出队。(1)优先队列的第一种用法,这是最常用的默认的优先级用法,也就是优先级高的先出队列,例如说一个int优先队列,那么

2017-05-21 13:19:37 711

原创 STL中队列的相关操作

基本操作:push(x) 将x压入队列的末端pop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值front() 返回第一个元素(队顶元素)back() 返回最后被压入的元素(队尾元素)empty() 当队列为空时,返回truesize() 返回队列的长度#include #include using

2017-05-21 13:14:53 329

转载 STL中的(list)链表

1 定义一个list#include #include #include using namespace std;int main (void){ list Milkshakes; return 0;}2 使用list的成员函数push_back和push_front插入一个元素到list中#include #include #includ

2017-05-20 20:47:16 1142

原创 链栈的定义及相关操作

#include #include typedef int ElemType;typedef struct linknode{ ElemType data; linknode *next;} Node,*LinkStack;void PrintStack(LinkStack top);//打印栈中的元素void DestroyStack(LinkStack top

2017-05-20 18:31:45 1864

原创 双端顺序栈基本操作

#include #define M 1000typedef char ElemType;typedef struct //定义一个双端顺序栈{ ElemType data[M];//栈区 int top[2];//top[0]和top[1]分别为两个栈顶指示器} SeqStack;void InitStack(SeqStack *s)//创建一个双端顺序栈{

2017-05-20 17:19:03 1562

原创 顺序栈的定义及相关操作

#include #define M 1000typedef char ElemType;typedef struct //定义一个顺序栈{ ElemType data[M]; int top;} SeqStack;void InitStack(SeqStack *s)//创建一个栈{ s->top=-1;}bool Push(SeqStack *

2017-05-20 15:25:30 11757 2

原创 STL中stack(栈)的用法

stack 模板类的定义在头文件中。stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型为deque。定义stack 对象的示例代码如下:stack s1;stack s2;stack 的基本操作有:入栈,如例:s.push(x);出栈,如例:s.pop();注意,出栈操作只是删除栈顶元素,并不

2017-05-20 14:01:20 6059

原创 双向链表的插入与删除节点

#include #include typedef struct linknode//定义双向链表{ int data; linknode *prior,*next;} Node,*Linklist;Linklist Createlist(int n);//建立双向链表void Addnode(Linklist L,int i,int x);//向链表中的第i个位置

2017-05-20 13:58:27 2753

原创 双向链表的查找

#include #include typedef struct linknode//定义双向链表{ int data; linknode *prior,*next;} Node,*Linklist;Linklist Createlist(int n);//建立双向链表int Find(Linklist L,int x);//在链表中查找值为x的下标void Sh

2017-05-20 13:21:14 4203 2

原创 双向链表的建立与输出

#include #include typedef struct linknode//定义双向链表{ int data; linknode *prior,*next;} Node,*Linklist;Linklist Createlist(int n);//建立双向链表void Showlist(Linklist L);//输出双向链表int main(void

2017-05-20 11:43:04 3799

原创 合并两个循环单链表

#include#include typedef struct linknode{ int data; linknode *next;} Node,*Linklist;Linklist CreateList_end(int n);//建立循环单链表Linklist Merge(Linklist RA,Linklist RB);//合并两个循环单链表void Show

2017-05-20 10:31:55 1865

原创 单链表的排序与销毁

#include#include typedef struct linknode{ int data; linknode *next;} Node,*Linklist;//Linklist表示结构体指针Linklist CreateList_end(int n);//尾插法建立链表void Sort(Linklist L);//冒泡排序void ShowList(

2017-05-18 20:46:30 727

原创 建立循环单链表

#include#include typedef struct linknode{ int data; linknode *next;} Node,*Linklist;Linklist CreateList_end(int n);void ShowList(Linklist L);int main(void){ Linklist L1; int n;

2017-05-18 19:48:20 4778 1

原创 合并两个有序单链表

#include#include typedef struct linknode{ int data; linknode *next;} Node,*Linklist;//Linklist表示结构体指针Linklist CreateList_end(int n);//尾插法建立链表Linklist MergeLinklist(Linklist LA,Linklist

2017-05-18 18:48:42 511

原创 向单链表中插入、删除节点

#include#include typedef struct linknode{ int data; linknode *next;} Node,*Linklist;//Linklist表示结构体指针Linklist CreateList_end(int n);//尾插法建立链表void ShowList(Linklist L);//输出链表内容void Add

2017-05-18 18:04:54 1339 2

原创 单链表的查找

单链表查找可分为按值查找和按序号查找。代码:#include#include typedef struct linknode{ int data; linknode *next;} Node,*Linklist;//Linklist表示结构体指针Linklist CreateList_end(int n);//尾插法建立链表Linklist findval(

2017-05-18 17:48:54 1031 1

原创 求单链表长度

#include#include typedef struct linknode{ int data; linknode *next;} Node,*Linklist;//Linklist表示结构体指针Linklist CreateList_end(int n);//尾插法建立链表void ShowList(Linklist L);//输出链表内容int Link

2017-05-18 17:34:58 34194 7

原创 单链表的建立与输出

链表可以用头插法建立,也可以用尾插法建立。然而头插法虽然操作简单一点,顺序却与输入顺序相反,尾插法虽然操作复杂一点,但是顺序却与输入顺序一致,所以建议使用尾插法。一、头插法建立链表1、不用函数代码:#include#include typedef struct linknode{ int data; linknode *next;} Node,*Linkl

2017-05-18 17:30:09 5370

原创 分组,使得每组元素和不为0

One spring day on his way to university Lesha found an arrayA. Lesha likes to split arrays into several parts. This time Lesha decided to split the arrayA into several, possibly one, new arrays so

2017-05-14 19:36:07 269

原创 删除数字能被10的k次方整除

Polycarp is crazy about round numbers. He especially likes the numbers divisible by10k.In the given number of n Polycarp wants to remove the least number of digits to get a number that is divisibl

2017-05-14 19:19:34 390

原创 交换元素使两个数组相同

In Berland each high school student is characterized byacademic performance — integer value between1 and 5.In high school 0xFF there are two groups of pupils: the groupA and the group B. Each

2017-05-14 19:00:40 1357

原创 康托展开

康托展开的公式是X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,ai为当前未出现的元素中是排在第几个(从0开始)。X为该排列在所有升序排列中排第几。  这个公式可能看着让人头大,最好举个例子来说明一下。例如,有一个数组 s = ["A", "B", "C", "D"],它的一个排列 s1 = ["D", "B", "A", "C

2017-05-13 22:02:44 252

原创 异或运算

1.交换律a ^ b = b ^ a 2.结合律 a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c; 3.d =a ^ b ^ c 可以推出 a = d ^b ^ c. 4、对于任何数x,都有x^x=0,x^0=x5.自反性 a ^ b ^ a = b.例:1-1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。

2017-05-13 21:59:29 4208

原创 set的用法

set的特性是,所有元素都会根据元素的键值自动排序,set的元素不像map那样可以同时拥有实值(value)和键值(key),set元素的键值就是实值,实值就是键值。set不允许两个元素有相同的键值。set的各成员函数列表如下:1.begin()--返回指向第一个元素的迭代器2.clear()--清除所有元素3.count()--返回某个值元素的个数4.empty()--如果集

2017-05-13 21:58:14 845

原创 map的用法

1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能自动建立Key - value的对应。key 和value可以是任意你需要的类型。 根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,00

2017-05-13 21:56:28 2735

原创 塞瓦定理

塞瓦定理塞瓦定理是指在△ABC内任取一点O,延长AO、BO、CO分别交对边于D、E、F,则 (BD/DC)×(CE/EA)×(AF/FB)=1。

2017-05-13 21:54:53 9774

原创 斐波那契通项公式

斐波那契通项公式

2017-05-13 21:52:39 694

原创 第二类斯特林数

第二类斯特林数定义:第二类Stirling数实际上是集合的一个拆分,表示将n个不同的元素拆分成m个集合的方案数,记为  或者  。和第一类Stirling数不同的是,集合内是不考虑次序的,而圆排列是有序的。常常用于解决组合数学中几类放球模型。描述为:将n个不同的球放入m个无差别的盒子中,要求盒子非空,有几种方案?递推式第二类Stirling数的推导和第一类Stirling数类似,可

2017-05-13 21:40:08 902

原创 同余与模算术

(a+b)mod p = (a mod p + b mod p) mod p (a*b)mod p = ((a mod p) * (b mod p)) mod p (a-b)mod p = ((a mod p)-(b mod p) + p) mod pa^b  mod  p= ((a  mod  p)^b) mod  p结合率:((a+b)  mod  p + c) mod  p

2017-05-13 21:37:50 405

原创 扩展欧几里得算法

1、找出一对整数(x,y),使得ax+by=gcd(a,b).若方程ax+by=gcd(a,b)的一组解为(x0,y0),则其他解可写为(x0+k*b/gcd(a,b),y0-k*a/gcd(a,b))#include #include #include #include using namespace std;int exgcd(int a, int b, int &x,

2017-05-13 21:32:54 189

原创 唯一分解定理

应用:(1)一个大于1的正整数N,如果它的标准分解式为:   ,那么它的正因数个数为  。(2) 它的全体正因数之和为    。当  时就称N为完全数。 是否存在奇完全数,是一个至今未解决之猜想。(3) 利用算术基本定理可以重新定义整数a和b的最大公因子  和最小公倍数    , 并证明   。(4)此外还可证明根号2是无理数等等。(5)证明素数个数无限。 

2017-05-13 20:56:13 1043

原创 int与string的相互转换

1、int转换为string#include #include using namespace std;int main(){ int a=123456147; string str; stringstream stream; stream<<a; str=stream.str(); cout return 0;}2

2017-05-13 19:37:02 216

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除