笔记
小杨_小杨
别浪费现在喔
展开
-
链式前向星模板+dijkstra堆优化模板
链式前向星模板题+dijkstra堆优化一.链式前向星1.链式前向星的复杂度链式前向星的构造类似于静态建立邻接表,其复杂度只与边数e有关 – 时间复杂度:O(e),空间复杂度:O(e)。2.链式前向星的变量struct edge{ int to, dis, next;};//to : 起点的编号 dis : 起点到终点的距离 next : 起点相同的上一条边的编号edge e[maxn];//记录边的信息int head[maxn],dis[maxn],cnt;//head[原创 2020-09-12 00:47:51 · 231 阅读 · 0 评论 -
各种各样的初始化
各种各样的初始化一.memsetmemset函数按字节对内存块进行初始化,所以不能用它将int数组初始化为0和-1之外的其他值1.头文件头文件:string.h2.代码//对整型数组初始化为0int main(){ int a[10]; memset(a,0,sizeof(a)); //对二维数组a[][],也是同样的初始化方式 for(int i = 0; i < 10; i++) printf("%d %d\n",i,a[i]); return 0;}/*输出:原创 2020-08-03 22:42:54 · 271 阅读 · 0 评论 -
详解并查集
并查集并查集可以说是判断图中的两个元素是否属于同一个连通分量之中一.并查集是什么?并查集可以用来管理元素分组的情况,也就是并查集可以高效合并两个元素,也可以判断两个元素是否属于同一个组现在有一堆元素,当你每次查询某两个元素是否属于一个集合的时候,一般来说数据量很大,每次需要花费很多的时间。而并查集利用树结构就能够很高效的查找到元素的祖宗节点是否是一样的,从而来判断是否属于同一个集合。二.并查集的操作1.初始化我们有n个元素,每个元素各属于自己的这个集合,所以有n个节点且没有边连接。2.合并原创 2020-05-26 22:12:50 · 149 阅读 · 0 评论 -
前缀和与差分
前缀和与差分在求区间和的操作上面,一般都需要o(n)的时候复杂度来计算,那么如何快速得到子数组的原创 2020-05-26 12:36:56 · 119 阅读 · 0 评论 -
二叉树学习笔记
二叉树学习笔记一.什么叫做二叉树及其特殊形态二叉树是每个结点最多有两个子树的树结构。其子树通常被称作“左子树”和“右子树”。二叉树的五种基本形态:①.空集②.只有一个结点③.只有左子树④.只有右子树⑤.左右子树都存在两种特殊形态的二叉树为:1.满二叉树一根深度为k且有2k-1个结点的二叉树称为满二叉树;也就是说**二叉树上只有最后一层无左右子树之外,其余结点的左右子树都存在,**...原创 2020-04-27 22:16:14 · 756 阅读 · 0 评论 -
位运算符以及他们的用途
位运算符以及他们的用途C语言中的6个位运算符位运算的实用一.位运算符1.& ——按位与运算"&"是双目运算符(双目运算符就是有两个操作数),只有当二进制对应位上都是1的时候结果才为1。aba&b1111000100002.| ——按位或运算“|”是双目运算符,只有当二进制对应位上有一个为1,...原创 2020-04-24 12:51:22 · 2173 阅读 · 1 评论 -
题目中遇到的随笔
题目中遇到的随笔里面可能啥都会出现,遇到就写点1.乘积尾零一.乘积尾零一般求一堆数相乘的末尾有多少个零的时候,只需要求出这堆数有多少个2和5的因数,在求一个min就好了。这是数论的知识:一个因数2与一个因数5相乘,会在乘积的末尾增加一个0所以面对问末尾有多少个零的时候只需要min(因数2的个数,因数5的个数)就好了,并不需要傻傻的去真算这些数相乘的结果然后再来数末尾有多少个0.例如...原创 2020-04-19 16:43:18 · 130 阅读 · 0 评论 -
阶乘(高精)
阶乘(高精)一.什么是阶乘一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。即5!=5 * 4 * 3 * 2 * 1。二.“普通”的阶乘阶乘的代码很好写,就如同下面一样;#include<stdio.h>#include<string.h>typedef long long ll;int ...原创 2020-04-19 16:20:15 · 1230 阅读 · 4 评论 -
大整数乘法(代码+注释+解析)
大整数乘法(高精)一.分析当整数大到没办法用int,long long这些数据类型解决的时候,就需要用字符串模拟高精。1.输入//首先创建两个字符串char s1[N],s2[N];//输入需要做乘法的两个大数scanf("%s %s",s1,s2);2.把字符串转化为整型这一步是为了方便后面的计算,因为利用字符串的输入,个位在最后一位元素,所以把字符串首尾互换(即把个位...原创 2020-04-17 11:06:32 · 2051 阅读 · 0 评论 -
hanoi塔(汉诺塔)--C语言
hanoi塔(汉诺塔)–C语言一.什么是hanoi塔汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。即规则:1.每次只能移动一个圆盘;2. 圆盘...原创 2020-03-24 23:18:35 · 3041 阅读 · 0 评论 -
C语言快速排序--qsort函数
C语言快速排序–qsort函数一.什么是qsort函数qsort函数是C语言编译器函数库自带的快速排序函数。其包含在#include<stdlib.h>头文件里面,所以在使用的时候需要加上该头文件。二.qsort函数的时间复杂度因为其本身还是快速排序,所以时间复杂度仍然是O(nlongn)(在洛谷做题的时候,感觉它还是比传统的快排要更快,传统的快排最后三个会TLE,但是使用...原创 2020-03-21 00:46:37 · 4693 阅读 · 5 评论 -
高精度加法及相关代码(C语言)
高精度加法及相关代码(C语言)一.C语言类型介绍介绍int double float这些的数字范围,然后说明为什么需要换种方法来进行大数计算原创 2020-02-25 17:31:29 · 874 阅读 · 0 评论 -
日期的问题及相关代码(C语言)
日期问题及相关代码闰年,这是第几天等原创 2020-02-24 20:39:06 · 724 阅读 · 0 评论 -
利用深度优先搜索(dfs)来解决迷宫问题
#include<bits/stdc++.h>using namespace std;int r,c,num=1000000;char a[41][41];int u[4]={1,-1,0,0},v[4]={0,0,1,-1};void search(int x,int y,int k){if(x==r-1&&y==c-1){if(num>k){n...原创 2020-02-22 23:06:36 · 2372 阅读 · 0 评论 -
质因数知识以及相关代码(C语言)
质因数知识以及相关代码(C语言)以下包括分解质因数最大公约数最大公倍数互质一.质因数1.质因数的相关数论知识在数论里是指能整除给定正整数的质数。除了1以外,两个没有其他共同质因子的正整数称为互质。只有一个质因子的正整数为质数。(在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。)质数又叫素数每个合数都可以写成几个质数(也可称为素数)相乘的形式,这几个质数就都叫做...原创 2020-02-24 00:13:18 · 1796 阅读 · 0 评论 -
利用广度优先搜索(bfs)来解决迷宫问题
利用bfs来解决迷宫问题#include<stdio.h>#include<string.h>#define maxsize 1000int map[maxsize][maxsize];int head=0,tail=1;int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}};int x1,y1,x2,y2;int w,h;s...原创 2020-02-19 12:40:04 · 2819 阅读 · 1 评论