
学习
文章平均质量分 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 · 161 阅读 · 0 评论 -
树状数组与线段树
文章目录归纳整理 : 归纳整理 : 单点修改,单点查询:数组 单点修改,区间查询:树状数组、线段树 区间修改,单点查询:树状数组差分,单点查询转化为求前缀和(区间查询)、线段树不好做 区间修改,区间查询:线段树lazy、树状数组b,c数组配合使用 ...原创 2022-04-20 21:24:13 · 373 阅读 · 0 评论 -
Trie树
文章目录基本模板 基本模板 #include<iostream> #include<cstring> using namespace std; const int N = 1000005;//树里面总的结点数,最多100000个单词但是结点数肯定多于100000 int 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 · 165 阅读 · 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 · 198 阅读 · 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 · 377 阅读 · 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 · 430 阅读 · 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 · 485 阅读 · 0 评论 -
程序设计复习——基础概念
程序设计复习——基本内容(2021.9.10) 常量与变量 变量名、常量名、函数名(你自己取的那种)统称标识名,标识名只能以字母或下划线开头,中间只能用字母数字下划线;不可以是系统保留字如int、return等。 变量赋值:int a = 10; int a (10);记得要习惯性赋初始值哦。 整型类型 类型名 空间 范围 基本整型 int 4byte -231~231-1 无符号基本整型 unsigned [int] 4byte 0~232-1 短整型 short [int] 2b原创 2021-09-10 14:34:39 · 198 阅读 · 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 · 526 阅读 · 0 评论 -
程序设计复习——基础语句
输入输出 四舍五入 可以用printf,可能有坑(?) 人工四舍五入 a = int (a+0.5); fixed<<precision 是四舍六入保留最后一位小数位为偶数(2.35到2.4,2.25到2.5) 查库函数 其他 复制粘贴比较保险 scanf输入多位数小数 ...原创 2021-09-26 18:41:31 · 792 阅读 · 0 评论 -
数据结构笔记
链表 考虑一个问题:一个排好序的数组,你要如何动态地插入和删除数字? 正常数组的问题:拿一个total变量存数据个数(数组内有效长度)每次插入要O(n)地挪动,删除也是O(n)地挪动,还有可能数据太多塞不下了 现在引入单链表:用的是结构体o 但是链表访问必须从头开始,查找也不能二分查找 另有: 双链表:知道head,tail 循环链表:最后一个的tail是第一个的地址 ...原创 2021-11-15 15:41:56 · 281 阅读 · 0 评论 -
DFS-BFS
一、基础 图的存储方式 邻接矩阵 多条边 邻接表 有向边 邻接矩阵不对称 二、dfs遍历结点 每次选择一个一个没有访问过的结点然后dfs,直到每一个点都被访问 非递归:用栈,可以用STL写 三、bfs 分层, 1、访问顶点v 2、访问与顶点v距离k且没有被访问过的顶点 3、如果搞完了还有顶点没访问,从任一个没访过的点开始重新bfs 用队列(STL)实现,一个数指头一个指尾,每次从头取一个点,然后遍历它的下一级点,加到tail后面,终止:head=tail 例题: 1、flood-fill问题 - 数陆地块原创 2021-11-09 19:01:15 · 88 阅读 · 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 · 686 阅读 · 0 评论 -
算法笔记(在更新
穷举 ……………………………… 贪心 haimeixue原创 2021-10-09 22:24:45 · 162 阅读 · 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 · 165 阅读 · 0 评论 -
链式前向星
终于在听了看了好多遍以后搞懂了链式前向星!!!!!! 先放例图及代码 实在是太难画了 const int N = 100005; int en,head[N*2];//head的大小和en一样 struct Edge{ int to,next; }edge[2*N]; //加边,x-->y void add(int x,int y){ edge[++en].to = y; ed...原创 2019-10-22 18:54:37 · 213 阅读 · 1 评论