
C++笔记
文章平均质量分 65
星云之
这个作者很懒,什么都没留下…
展开
-
数据结构思维导图
数据结构思维导图原创 2023-03-16 21:28:10 · 110 阅读 · 0 评论 -
有关约数的运用(未完版)
文章目录一、求约数个数二、约数之和一、求约数个数题目:AcWing 870. 约数个数给定 n 个正整数 ai,请你输出这些数的乘积的约数个数,答案对 109+7 取模。数据范围:1≤n≤1001≤ai≤2×109核心:n=p^a1 * p^a2 *...* p^ak约数个数:(a1+1)*(a2+1)*...*(ak+1) 代码:#include<iostream>#include<unordered_map>using namespace st原创 2021-07-31 16:29:39 · 165 阅读 · 0 评论 -
最长上升子序列和最长公共子序列
文章目录文章目录文章目录前言一、是什么?二、题目1.朴素版2.二分版总结前言一、是什么?示例:二、题目1.朴素版 题目: AcWing 897. 最长公共子序列给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。 数据范围:1≤N≤1000,−10 ^9 ≤ 数列中的数 ≤ 10 ^9 解析:(1) f[N]:所有以第i个数结尾的上升子序列(2) f[i]=max(f[j]+1),j=0,1,2…i-1 代码:#include<iostream原创 2021-07-22 10:28:04 · 639 阅读 · 1 评论 -
图–最短路
图论文章目录图论时间复杂度一、pandas是什么?二、使用步骤1.引入库2.读入数据总结时间复杂度提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as原创 2021-07-18 12:44:39 · 358 阅读 · 0 评论 -
滑动窗口/Trie字符串统计/最大异或对/模拟堆
1.AcWing 154.滑动窗口(1)题目描述:(2)解法:单调队列(3)代码+注释:#include<iostream>using namespace std;int n,k,a[1000010],q[1000010];//q存下标 int main(){ scanf("%d%d",&n,&k); for(int i=0;i<n;i++) { scanf("%d",&a[i]); } int hh=0,tt=-1;//初始化队头原创 2021-07-10 20:02:43 · 164 阅读 · 0 评论 -
二分查找和二分答案
二分查找1.解释:二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务。2.基本思想:(以升序为例)将n个元素分n成个数大致相同的两半,取a[ n/2 ]与欲查找的x作比较,如果x=a[ n/2 ]则找到x,算法终止;如果x<a[ n/2 ],则我们只要在数组a的左半部分继续搜索x;如果x>a[ n/2 ],则我们只要在数组a的右半部继续搜索x。3.优缺点:优点:查找原创 2021-01-24 10:40:28 · 523 阅读 · 0 评论 -
粗略差分
一.差分1.定义: 设变量y依赖于自变量t ,当t变到t + 1时,因变量y = y(t)的改变量Dy(t)= y(t+1) - y(t)称为函数y(t)在点t处步长为1的(一阶)差分,记作Dy1= yt+1- yt,简称为函数y(t)的(一阶)差分,并称D为差分算子。2.适用: 多次操作,少次询问。3.通俗解释:(1)d[ i ] ---->当前的数减去前一个数(2)性质:1.对L~R区间加V: [L,R]+V------>d[L]+V / d[R]+V2.最终答原创 2021-01-17 15:36:29 · 210 阅读 · 0 评论 -
深搜和广搜入门
深度优先搜索和广度优先搜索原创 2020-10-26 19:34:30 · 509 阅读 · 0 评论 -
最小堆和并查集
堆1.定义:堆是计算机学科中一类特殊的数据结构的统称。2.性质:(1).堆中某个节点的值总是不大于或不小于其父节点的值(2).堆总是一颗完全二叉树3.分类:(1)最大堆/大根堆:根节点最大(2)最小堆/小根堆:根节点最小4.STL(1)头文件:#include <algorithm>(2)建立一个空堆make_heap(first,last,comp);(3)向堆中插入一个新元素push_heap(first,last,comp);(4)获取当前堆顶元素的值to原创 2020-09-20 19:50:22 · 254 阅读 · 0 评论 -
一些简单基础的STL
简单STL原创 2020-10-25 16:42:09 · 389 阅读 · 1 评论 -
基础数学2
质数/素数:是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。1既不是质数也不是合数孪生素数:指相差2的素数对。例如3和5,5和7,11和13…。猜想:对所有自然数k,存在无穷多个素数对(p, p + 2k)。k = 1的情况就是孪生素数猜想。素数定理:从不大于n的自然数中随机选一个数,它是素数的概率大约是1/ln n。在一个大于1的数a和它的2倍之间(即区间(a,2a]中)必存在至少一个素数。哥德巴赫猜想:原初猜想的现代陈述为:任一大于5的整数都可写成两个质数之和原创 2020-10-25 16:42:25 · 613 阅读 · 0 评论 -
五种简单背包模板
一.引入:二.01背包:三.完全背包:四.多重背包:五.二维费用的背包问题:六.分组背包:七.扩展:原创 2020-08-08 09:44:15 · 831 阅读 · 2 评论 -
贪心中选区间问题(以洛谷P1803为例)
一.贪心1.定义:贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。2.算法思路(一般情况):(1)建立数学模型来描述问题。(2)把求解的问题分成若干个子问题。(3)对每个子问题求解,得到子问题的局部最优解。(4)把子问题的局部最优解合成原来解问题的一个解。3.使用条件:(1)贪心选择性质。(2)最优子结构性质(更多请见百度百科添加链接描述)二.例题1.类似问题和思路问题:给你n个原创 2020-07-31 17:15:11 · 478 阅读 · 0 评论 -
了解树状数组(C++)
一.定义:是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值(如果加入多个辅助数组则可以实现区间修改与区间查询)。二.功能:区间和查询、单点修改三.与线段树的比较:能用树状数组解决的问题,基本上都能用线段树解决,而线段树能解决的树状数组不一定能解决。但相比较而言,树状数组效率要高很多。四.构造树状数组:1.结点编号:x2.管辖区间元素原创 2020-07-30 09:15:13 · 296 阅读 · 0 评论 -
了解线段树(C++)
一.定义:线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。二.功能:快速的查找某一个节点在若干条线段中出现的次数。(单点、区间的修改、查询)三.时间复杂度:O(logN)四.注意:实际应用时一般要开4N的数组以免越界。未优化的空间复杂度为2N,有时需要离散化让空间压缩。五.代码(以求区间和为例)初步建树://p下标,l区间左界,r区间右界,mid线段中点void build(int p,int l,int r) {原创 2020-07-27 09:01:16 · 933 阅读 · 0 评论 -
斐波那契数列三种算法
一.递归二.递推三.记忆化搜索O(n)例题:注:此为牛客算法竞赛入门班笔记原创 2020-07-22 10:42:47 · 363 阅读 · 0 评论 -
有关字符串的一些函数(C++/C)
一.getline()(1):可接收含空格的字符串(2):#includestring s;getline(cin,s);二.cin.getline(字符串的变量,字符个数,结束字符)(1):当结束字符省略时,默认为’\0’(2):#includechar a[100];cin.getline(a,10);三.at()(1):返回一个字符表达式或备注字段在另外一个字符表达式或备注字段中首次出现的位置,重最左边开始计数。(2)说明:at( ) 函数在第二个字符表达式中搜索首次出现的原创 2020-07-19 12:08:14 · 447 阅读 · 0 评论 -
水题须知2(数学基础)
一.欧拉函数二.费马小定理三.扩展欧几里得算法四.逆元五.中国剩余定理原创 2020-06-22 23:02:02 · 588 阅读 · 0 评论 -
常见函数1(c++)
一.sort(start,end,cmp)1.头·文件#include< algorithm >2.解释start:起始地址.endl:结束地址的下一位.cmp:用于规定排序的方法,可不填,默认升序.3.例a[100]sort(a,a+100)原创 2020-06-20 17:28:40 · 269 阅读 · 0 评论