![](https://img-blog.csdnimg.cn/5a6e42bd7d924ad4b952bc984d3bc151.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
学习
文章平均质量分 77
学习内容
矿矿不想吃饭
是人
展开
-
图论算法学习笔记
Topological sorting//topological sorting#include<iostream>using namespace std;const int N = 5005;const int M = 500005;const int mod = 80112002;int n,m,a,b,en = 0;struct Edge{ int next,to;}edge[M];int head[N] = {0};int in[N] = {0},out[N]原创 2022-05-15 15:57:28 · 111 阅读 · 0 评论 -
树状数组与线段树
文章目录归纳整理 :归纳整理 :单点修改,单点查询:数组单点修改,区间查询:树状数组、线段树区间修改,单点查询:树状数组差分,单点查询转化为求前缀和(区间查询)、线段树不好做区间修改,区间查询:线段树lazy、树状数组b,c数组配合使用...原创 2022-04-20 21:24:13 · 107 阅读 · 0 评论 -
Trie树
文章目录基本模板基本模板#include<iostream>#include<cstring>using namespace std;const int N = 1000005;//树里面总的结点数,最多100000个单词但是结点数肯定多于100000int n,m;int tree[N][27] = {0};//tree[i][j]存的是结点i的第j个儿子的节点号,用这样的方式连起来int fa[N] = {0};//找父亲bool f[N] = {0};//判原创 2022-04-06 19:46:14 · 61 阅读 · 0 评论 -
Lowest Common Ancestor
文章目录luoguP3379板子题luoguP3379板子题代码:现写的一份,是单纯的LCA#include<iostream>using namespace std;const int N = 500005;int en = 0,head[N] = {0};struct Edge{ int to,next; int val;}edge[N*2];int n,m,q,a,b,c,rt;int fa[N][21] = {0},depth[N] = {0},w[N] = {原创 2022-04-06 17:13:47 · 94 阅读 · 0 评论 -
数理基础QAQ
文章目录整数对9取模=(各位数加起来)%9.N的大于sqrt(N)的质因子至多有一个(sqrt(n)指N的开方取整)1304 小球动量守恒1417 位运算11020 分解质因数欧拉筛/线性筛法区间GCD可以合并辗转相除法整数对9取模=(各位数加起来)%9.N的大于sqrt(N)的质因子至多有一个(sqrt(n)指N的开方取整)假设有质因子p1和p2都大于sqrt(n),那么p1*p2>n.所以在分解质因数的时候只需要讨论所有小于等于sqrt(n)的prime number(可以欧拉筛法),然后原创 2022-03-19 16:42:48 · 167 阅读 · 0 评论 -
考前复习笔记
文章目录1. if的短路效应:2. 局部变量会覆盖全局变量3. `do{ }while()`4. `while`小心数组越界!!!5. 缺省值6. 内存分配7. 一些重载8. 重载和重定义9. 友元:10. 成员函数put输出字符11. write成员函数无格式输出12. 输入流:13. `cin.read(buffer,10);`14. 文件操作:15. 函数模板1. if的短路效应:如果&&前面条件不满足,或者||前面条件满足了,那么直接跳出,不做后续操作,意思是如果后面有赋值也原创 2022-01-10 21:35:55 · 184 阅读 · 0 评论 -
类及相关知识
文章目录一、实例1、各种形状的图形二、面向对象的特点封装继承多态三、库和类关于库array库的问题array库的改进:将函数放进结构体how it becomes 'class':类定义实例对象的使用对象的定义对象的引用实例对象赋值this指针一、实例1、各种形状的图形在屏幕上输出各种形状的图形(文字),诸如圆形,长方形,三角形等;用一个数组存储这些不同的形状,并进行一些操作class shape{ public: virtual void draw()=0;};class rectangl原创 2021-12-11 17:27:49 · 154 阅读 · 0 评论 -
程序设计复习——基础概念
程序设计复习——基本内容(2021.9.10)常量与变量变量名、常量名、函数名(你自己取的那种)统称标识名,标识名只能以字母或下划线开头,中间只能用字母数字下划线;不可以是系统保留字如int、return等。变量赋值:int a = 10; int a (10);记得要习惯性赋初始值哦。整型类型类型名空间范围基本整型int4byte-231~231-1无符号基本整型unsigned [int]4byte0~232-1短整型short [int]2b原创 2021-09-10 14:34:39 · 147 阅读 · 0 评论 -
指针内容整理
文章目录指针1、概念2、指针变量的定义3、指针变量的赋值4、用指针变量对原单元的值进行操作5、注意事项6、指针运算与数组7、指针运算8、指针作为函数参数指针1、概念把地址作为数据处理指针变量:存储地址的变量eg:a是变量b的指针,意思是a存了b的地址,也可以说a指向b.2、指针变量的定义类型标识符 *指针变量; int *intp; //用*特别强调!!指针存的是起始地址! double *doublep;//这里加类型,是说明指针指向的单元的数据类型,输出的时候就只取那么多 in原创 2021-11-18 17:41:03 · 254 阅读 · 0 评论 -
程序设计复习——基础语句
输入输出四舍五入可以用printf,可能有坑(?)人工四舍五入 a = int (a+0.5);fixed<<precision 是四舍六入保留最后一位小数位为偶数(2.35到2.4,2.25到2.5)查库函数其他复制粘贴比较保险scanf输入多位数小数...原创 2021-09-26 18:41:31 · 296 阅读 · 0 评论 -
数据结构笔记
链表考虑一个问题:一个排好序的数组,你要如何动态地插入和删除数字?正常数组的问题:拿一个total变量存数据个数(数组内有效长度)每次插入要O(n)地挪动,删除也是O(n)地挪动,还有可能数据太多塞不下了现在引入单链表:用的是结构体o但是链表访问必须从头开始,查找也不能二分查找另有:双链表:知道head,tail循环链表:最后一个的tail是第一个的地址...原创 2021-11-15 15:41:56 · 237 阅读 · 0 评论 -
DFS-BFS
一、基础图的存储方式邻接矩阵多条边 邻接表有向边 邻接矩阵不对称二、dfs遍历结点每次选择一个一个没有访问过的结点然后dfs,直到每一个点都被访问非递归:用栈,可以用STL写三、bfs分层,1、访问顶点v2、访问与顶点v距离k且没有被访问过的顶点3、如果搞完了还有顶点没访问,从任一个没访过的点开始重新bfs用队列(STL)实现,一个数指头一个指尾,每次从头取一个点,然后遍历它的下一级点,加到tail后面,终止:head=tail例题:1、flood-fill问题 - 数陆地块原创 2021-11-09 19:01:15 · 51 阅读 · 0 评论 -
作业集合(是算法题,语法题请见具体章节笔记
14258#include<iostream>using namespace std;long long pow2[37];int a,cnt = 0;long long n,ans = 1;int main(){ cin>>a>>n; pow2[0] = a;//意思是a的2^0次方,是a //a的2^n次方 = (a的2^n-1次方)*(a的2^n-1次方) for(int i=1;i<=35;i++){ pow2[i] =原创 2021-10-18 15:32:04 · 226 阅读 · 0 评论 -
算法笔记(在更新
穷举………………………………贪心haimeixue原创 2021-10-09 22:24:45 · 119 阅读 · 0 评论 -
9.26上机课,爆double的一题
#include<iostream>#include<string>using namespace std;string s1,s2;int f1,f2;long long a=0,b=0,c=0,d=0,ans1=0,ans2=0;int main(){ cin>>s1>>s2; for(int i=1;i<=s1.length() ;i++){ f1 = i-1; if(s1[i-1]=='.') break; a =原创 2021-09-27 15:15:43 · 117 阅读 · 0 评论 -
链式前向星
终于在听了看了好多遍以后搞懂了链式前向星!!!!!!先放例图及代码实在是太难画了const int N = 100005;int en,head[N*2];//head的大小和en一样 struct Edge{ int to,next;}edge[2*N];//加边,x-->yvoid add(int x,int y){ edge[++en].to = y; ed...原创 2019-10-22 18:54:37 · 131 阅读 · 1 评论