摘要:
P1036 [NOIP2002 普及组] 选数枚举每一种选数并进行素数的判断,计数。 //P1036 选数 #include<iostream> using namespace std; long long ans=0; int a[21]; int n,k; //判断素数 int isprime(
阅读全文
posted @ 2022-03-11 22:39
心悟&&星际
阅读(255)
推荐(0)
摘要:
P6832 [Cnoi2020]子弦分析单个字符的子串中出现次数最多的一定是所有子串中出现次数最多的。统计每个字符出现的次数,并取最大值。 #include<iostream> #include<cstring> #include<cstdio> using namespace std; int a
阅读全文
posted @ 2022-03-11 14:50
心悟&&星际
阅读(69)
推荐(0)
摘要:
P3742 umi的函数分析逐一对比两个字符串中对应的字符x[i]<y[i]时,z[i]无解,x[i]=y[i]能取z[i]>=x[i],x[i]>y[i]时,只能取z[i]=y[i]。 //P3742 umi的函数 #include<iostream> #include<cstring> usin
阅读全文
posted @ 2022-03-11 14:46
心悟&&星际
阅读(46)
推荐(0)
摘要:
P2676 [USACO07DEC]Bookshelf B 分析按身高大高到低取到大于书架高度时,这时所需要的数量。 #include<iostream> #include<algorithm> using namespace std; const int Maxn=20001; int a[Max
阅读全文
posted @ 2022-03-11 14:36
心悟&&星际
阅读(179)
推荐(0)
摘要:
C++中指针和引用的应用很常见,连着的使用极易混淆,但是区别很明显: 1. 指针是变量,而引用只是变量的一个别名,而且引用使得别名与引用对象绑在了一起。2.指针初始化之后还可以指向其他变量,但是引用只能初始化一次。3.sizeof 操作的结果不一样,引用为所指向变量的大小,指针则返回指针本身的大小。
阅读全文
posted @ 2022-03-11 11:40
心悟&&星际
阅读(64)
推荐(0)
摘要:
一、指针作为函数的参数指针可以作为函数的参数, #include<bits/stdc++.h> using namespace std; //有错误的两个变量交换 void Swap(int *a,int *b) { int *p; p=a; a=b; b=p; } //运行错误 void Swap
阅读全文
posted @ 2022-03-11 11:23
心悟&&星际
阅读(76)
推荐(0)
摘要:
数组名是一个指针,它指向数组第一个元素的地址,所以可以用数组名遍历数组,也可以用指针遍历数组,注意的是数组名是一个静态指针不能进行++,--,可以进行+i,-i运算,指针则可以进行上述两种运算,因为它的值是保存地址的一个变量所以可以改变。 #include<bits/stdc++.h> using
阅读全文
posted @ 2022-03-11 09:45
心悟&&星际
阅读(60)
推荐(0)
摘要:
P2356 弹珠游戏分析对于某个位置为0的所在行和所在列求和,并求最大值,本题的关键如何快速求是这n*n(最多10000)个值,在输入时预处理每行每列敌人的数量。 #include<iostream> using namespace std; const int Maxn=1010; struct
阅读全文
posted @ 2022-03-11 09:33
心悟&&星际
阅读(138)
推荐(0)
摘要:
P1181 数列分段Section I 分析尽可能的对每个区间求和直到超过M后,重新统计,并计数加1。 //P1181 数列分段Section I #include<iostream> using namespace std; int a[100000]; int main() { int n,m;
阅读全文
posted @ 2022-03-11 09:14
心悟&&星际
阅读(39)
推荐(0)
摘要:
P1614爱与愁的心痛 分析:共计n-m+1个连续区间,从这n-m+1个数中取最小值。问题转为如何求这n-m+1个数,可以用前缀和进行优化。 //P1614爱与愁的心痛 #include<iostream> #include<algorithm> using namespace std; int a
阅读全文
posted @ 2022-03-11 09:06
心悟&&星际
阅读(87)
推荐(0)
摘要:
求有向图的强连通分量个数(kosaraju算法)1. 定义 连通分量:在无向图中,即为连通子图。 上图中,总共有四个连通分量。顶点A、B、C、D构成了一个连通分量,顶点E构成了一个连通分量,顶点F,G和H,I分别构成了两个连通分量。 强连通分量:有向图中,尽可能多的若干顶点组成的子图中,这些顶点都是
阅读全文
posted @ 2022-03-11 08:54
心悟&&星际
阅读(4094)
推荐(0)
摘要:
尺取--(毛毛虫算法)尺取算法也叫毛毛虫算法,因为计算过程有点类似毛毛虫一点点的往前挪,在挪动的过程中可以得到一些需要的解。(自动脑补)通过两个变量来保存所选取区间的左右端点,然后不断的推进区间,寻找所需要的答案(尺取的精髓),其实也是一种暴力枚举方法,不过是有技巧的枚举,所以尺取算法比一般的算法快
阅读全文
posted @ 2022-03-11 08:35
心悟&&星际
阅读(330)
推荐(0)
摘要:
一、变量的内存地址(变量放在哪里)每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。请看下面的实例,它将输出定义的变量地址: #include<bits/stdc++.h> using namespace std; int main()
阅读全文
posted @ 2022-03-10 22:06
心悟&&星际
阅读(69)
推荐(0)
摘要:
同余给定一个正整数m,如果两个整数a和b满足a-b能够被m整除m|(a-b),那么整数a与b对模m同余,记为a≡b (mod m)举例a=100,b=60,a-b=40,m=8,8|40,故100≡60 (mod 40)。同余另一种说法是a%m==b%m。主要性质如果a≡b (mod m),c为整数
阅读全文
posted @ 2022-03-10 21:00
心悟&&星际
阅读(142)
推荐(0)
摘要:
集合的组合(子集)设S是n元素集合。集合S的一个组合通常表示集合S的元素的一个无序选择。这样一个选择的结果是S的元素构成的一个子集。因此,S的一个组合就是S的子集的一个选择。因此,术语组合与子集本质上是可以互换的,通常我们使用更熟悉的子集而不使用略显笨拙的组合,除非要强调选择的过程。 我们用 表示n
阅读全文
posted @ 2022-03-10 20:56
心悟&&星际
阅读(437)
推荐(0)
摘要:
卡特兰数列(Catalan )简述卡特兰数又称卡塔兰数,它是组合数学中一个常出现在各种计数问题中出现的数列,其前几项为 : 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, ......公式1.递归公式12.递归公式2 3
阅读全文
posted @ 2022-03-10 20:32
心悟&&星际
阅读(844)
推荐(0)
摘要:
本文只总结常见的序列容器(vector、deque、list)和关联容器(set、multiset、map、multimap)的迭代器失效问题。原迭代器指的是进行操作之前保存的迭代器,包括begin()、end()以及其他位置的迭代器。vector:成员函数push_back():会在容器末尾添加一
阅读全文
posted @ 2022-03-10 17:55
心悟&&星际
阅读(218)
推荐(0)
摘要:
C++迭代器(STL迭代器)iterator详解要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类似。迭代器按照定义方式分
阅读全文
posted @ 2022-03-10 17:51
心悟&&星际
阅读(837)
推荐(0)
摘要:
C++运算符优先级表C++运算符优先级表,从上到下,从左到右,优先级依次减弱。优先级 运算符 说明 结合性1 :: 范围解析 自左向右2 ++ -- 后缀自增/后缀自减 () 括号 [] 数组下标 . 成员选择(对象) −> 成员选择(指针) 3 ++ -- 前缀自增/前缀自减 自右向左 + − 加
阅读全文
posted @ 2022-03-10 15:54
心悟&&星际
阅读(1298)
推荐(0)
摘要:
杂项运算符下表列出了 C++ 支持的其他一些重要的杂项运算符。运算符 描述sizeof sizeof运算符返回变量的大小。例如,sizeof(a)将返回4,其中a是整数。Condition?X:Y 条件运算符。如果Condition为真?则值为X:否则值为Y。, 逗号运算符会顺序执行一系列运算。整个
阅读全文
posted @ 2022-03-10 15:53
心悟&&星际
阅读(73)
推荐(0)
摘要:
赋值运算符下表列出了 C++ 支持的赋值运算符:运算符 描述 实例= 简单的赋值运算符,把右边操作数的值赋给左边操作数 C=A+B将把A+B的值赋给C+= 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C+=A相当于C=C+A-= 减且赋值运算符,把左边操作数减去右边操作数的结果
阅读全文
posted @ 2022-03-10 15:50
心悟&&星际
阅读(224)
推荐(0)
摘要:
逻辑运算符下表显示了 C++ 支持的所有关系逻辑运算符。假设变量 A 的值为 1,变量 B 的值为 0,则:运算符 描述 实例&& 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (A&&B)为假。|| 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (A||B)为真。! 称为
阅读全文
posted @ 2022-03-10 15:47
心悟&&星际
阅读(262)
推荐(0)
摘要:
关系运算符下表显示了 C++ 支持的所有关系运算符。同样还是假设变量 A 的值为 10,变量 B 的值为 20,则:运算符 描述 实例== 检查两个操作数的值是否相等,如果相等则条件为真。 (A==B)不为真。!= 检查两个操作数的值是否相等,如果不相等则条件为真。 (A!=B)为真。> 检查左操作
阅读全文
posted @ 2022-03-10 15:44
心悟&&星际
阅读(130)
推荐(0)
摘要:
算术运算符下表显示了 C++ 支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:运算符 描述 实例+ 把两个操作数相加 A+B将得到30- 从第一个操作数中减去第二个操作数 A-B将得到-10* 把两个操作数相乘 A*B将得到200/ 分子除以分母 B/A将得到2% 取模
阅读全文
posted @ 2022-03-10 14:38
心悟&&星际
阅读(109)
推荐(0)
摘要:
二维数组一、二维数组的定义当一维数组元素的类型也是一维数组时,便构成了“数组的数组”,即二维数组。二维数组定义的一般格式:数据类型 数组名[常量表达式1] [常量表达式2] ;例如:int a[4][10];a数组实质上是一个有4行、10列的表格,表格中可储存40个元素。第1行第1列对应a数组的a[
阅读全文
posted @ 2022-03-10 12:21
心悟&&星际
阅读(3308)
推荐(0)
摘要:
一维数组C++语言一、为什么要使用数组通过前面几章的学习,我们已经可以编写程序来解决各种相当复杂的问题了,但是当需要处理的数据比较多时,仅依靠前面的知识是不够的,即使简单的问题也可能需要比较复杂的程序来处理。请看下面的例子:例题:输入50个学生的某门课程的成绩,打印出低于平均分的学生序号与成绩。【分
阅读全文
posted @ 2022-03-10 11:39
心悟&&星际
阅读(925)
推荐(0)
摘要:
一、定义字符数组:存储字符的数组字符串 :是使用最频繁的字符数组,是一个特殊的字符数组。C++中并没有专门的字符串的类型,一个字符串实际上就是一个字符数组,与普通字符数组不同的是,字符串的结尾有一个字符\0,表示字符串的结束。char 可以定义字符数组,也可以定义字符串。 字符串实际上是使用 nul
阅读全文
posted @ 2022-03-10 10:42
心悟&&星际
阅读(1043)
推荐(0)
摘要:
string容器要想使用标准C++中string类,必须要包含#include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件using namespace std;string类的构造函数string(const char *s); //用c字符
阅读全文
posted @ 2022-03-10 09:24
心悟&&星际
阅读(35)
推荐(0)
摘要:
Queue容器Queue容器概述queue队列与栈有点类似,栈一个是在同一端存取数据,队列一个是在一端存入数据,另一端取出数据。单向队列中的数据是先进先出(First In First Out,FIFO)。在STL中,单向队列也是以别的容器作为底部结构,再将接口改变,使之符合单向队列的特性就可以了。
阅读全文
posted @ 2022-03-10 09:21
心悟&&星际
阅读(33)
推荐(0)
摘要:
C++ Stack栈的基本概念栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是
阅读全文
posted @ 2022-03-10 09:16
心悟&&星际
阅读(248)
推荐(0)
摘要:
list容器list是C++标准模版库(STL,Standard Template Library)中的部分内容。实际上,list容器就是一个双向链表,可以高效地进行插入删除元素。使用list容器之前必须加上<list>头文件:#include<list>;list属于std命名域的内容,因此需要通
阅读全文
posted @ 2022-03-10 08:06
心悟&&星际
阅读(33)
推荐(0)
摘要:
计数排序(Counting Sort)计数排序不是基于比较的排序算法,其核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。 作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。1 算法描述找出待排序的数组中最大和最小的元素;统计数组中每个值为i的元素出现的次数,存入数
阅读全文
posted @ 2022-03-09 21:20
心悟&&星际
阅读(65)
推荐(0)
摘要:
桶排序(Bucket Sort)桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。桶排序 (Bucket sort)的工作的原理:假设输入数据服从均匀分布,将数据分到有限数量的桶里,每个桶再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排)
阅读全文
posted @ 2022-03-09 21:18
心悟&&星际
阅读(85)
推荐(0)
摘要:
选择排序(Selection Sort)选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。2.1
阅读全文
posted @ 2022-03-09 21:15
心悟&&星际
阅读(175)
推荐(0)
摘要:
堆排序堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。堆堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图
阅读全文
posted @ 2022-03-09 15:24
心悟&&星际
阅读(16)
推荐(0)
摘要:
P1536 村村通本题要求统计连通分块的个数,同一个连通分块可以用并查集进行处理 /* 村村通 */ #include<iostream> using namespace std; const int Max=1010; int pre[Max]; int n,m,cnt; void make()
阅读全文
posted @ 2022-03-09 14:22
心悟&&星际
阅读(27)
推荐(0)
摘要:
Shell排序希尔排序是一种插入排序算法,它出自D.L.Shell,因此而得名。Shell排序又称作缩小增量排序。Shell排序的执行时间依赖于增量序列。 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后
阅读全文
posted @ 2022-03-09 14:10
心悟&&星际
阅读(156)
推荐(0)
摘要:
插入排序有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法--插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n
阅读全文
posted @ 2022-03-09 11:03
心悟&&星际
阅读(189)
推荐(0)
摘要:
冒泡排序排序的基本概念排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序,若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。
阅读全文
posted @ 2022-03-09 08:49
心悟&&星际
阅读(20)
推荐(0)
摘要:
1. 概述AVL树是最早提出的自平衡二叉树,在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. Landis。AVL树种查找、插入和删除在平均和最坏情况下都是O(log n),增加和删除可能需要通过一次
阅读全文
posted @ 2022-03-09 08:25
心悟&&星际
阅读(45)
推荐(0)