
杂文讲解
Masker_43
这个作者很懒,什么都没留下…
展开
-
【MAP】插入、修改、删除、查找
插入: m.insert(map<int,string>::value_type(1,"a"));//map容器,键值类型,value_type都不能少 //m.insert(make_pair<int,string>(1,"a")); //同样效果 修改: m.insert(map<int,string>::value_typ...原创 2019-05-09 15:59:04 · 1677 阅读 · 0 评论 -
Python Knowledge Forest
19.9.6当类被调用,实例化的第一步就是"创建实例对象",紧接着,她会自动检查是否实现了__init__方法:若__init__()没有被实现,则返回对象,实例化过程结束。若__init__()被实现,则将实例对象作为self自动传参,创建实例。实现了__init__的class,实例化时必须准确无误地传参。class Person():#class声明时必须带有括号,并且在...原创 2019-09-06 15:57:55 · 128 阅读 · 0 评论 -
快速傅里叶变换
呜呜呜不要来北理上学写在前面的话:没有啦,想打ACM反正迟早都是要学的。废寝忘食苦学了两天,终于照着板子+魔鬼调试敲过了大整数乘法。真的好难,还好我们会用板子就可以啦。看了许多BLOG,将真正写的非常好很有帮助的贴出来:Leo_h1104...原创 2019-08-04 09:42:17 · 244 阅读 · 0 评论 -
【动态规划】
分类:字符与串:【A - Max Sum Plus Plus】:M子段最大和。取已知数填格:原创 2019-07-29 21:02:29 · 111 阅读 · 0 评论 -
并查集
核心:普通并查集:void INIT(){ memset(par , -1 , sizeof(par)); return ;}int FIND(int i){ return par[i] == -1 ? i : par[i] = FIND(par[i]);}void UNION(int l,int r){ par[parr] = parl; return ;}...原创 2019-07-05 21:27:58 · 156 阅读 · 0 评论 -
LIS、LCS
LIS:Longest Increasing Subsequence朴素三角dp,注意初始化为1:int ans = 0;for(int i=1;i<=N;i++) dp[i] = 1;//自己开始自己结束,长度自然为 1 for(int i=1;i<=N;i++){ for(int j=1;j<i;j++) if(A[i] > A[j]) d...原创 2019-07-14 17:40:18 · 145 阅读 · 0 评论 -
【I - 最少拦截系统】
思路:一:这是一道经典的动归题目,经典在它可以牵引出 Dilworth定理、LIS(Longest Increasing Subsequence)。先说 Dilworth:Dilworth定理包含如下知识:偏序集、链、反链。Dilworth 包括两个对偶定理:最大链长度 = 最少反链划分数。最大反链长度 = 最少链划分数。那如何使用该定理呢?非常简单。以本题为例:求最少...原创 2019-07-14 13:41:52 · 167 阅读 · 0 评论 -
LCS问题
概念明晰:- longest common sub-sequences:最长 公共 子-序列子串:按原顺序依次出现,不可以跳过某元素子序列:在保持元素前后关系的前提下,可以跳过某些元素的序列...原创 2019-04-16 13:23:18 · 4769 阅读 · 1 评论 -
最小生成树
核心:Prim:基于点,类似于 Dijkstra,需要用到优先队列、dis[]、vis[]。Kruskal:基于边,要用到并查集、sort。总结:唯一性:【K - The Unique MST】原创 2019-07-09 17:53:11 · 170 阅读 · 0 评论 -
sort、swap、unique、lower_bound、upper_bound
感谢:代码:#include <iostream>#include <algorithm>using namespace std;const int maxn = 15;int n[maxn] = {1,5,2,4,1,3,2,3,5,1};bool cmp(int i,int j){ return i>j;}void OUTPUT()...原创 2019-07-03 11:54:40 · 209 阅读 · 0 评论 -
图论中的传递闭包(判断联通块)
发现了一些很有趣也很强大的闭包性质。会再来补充。矩阵A自乘n次,得到的矩阵是恰好走n次可到达的地点的路径数。令A[i][i]都为零。原创 2019-05-23 20:56:44 · 727 阅读 · 0 评论 -
atoi()
写法(同时读入数字和字符串):#include <iostream>#include <algorithm>using namespace std;int main(){ int n; char str[30]; scanf("%d%s",&n,str); cout<<n<<endl; int a = atoi(str)...原创 2019-05-23 18:04:57 · 918 阅读 · 0 评论 -
邻接表与前向星
写在前面的话:acdreamers的BLOG给了本文很大启发。由于在明白了二者的写法之后,发现选择一个掌握就可以了,故只写出了邻接表的模板。前向星(存边):原理:将所有边按照先起点后终点的顺序从小到大排序。记录:对所有点,记录以某点为起点的所有边在 EDGE 数组中的起始位置:head[maxn],与长度(以该点为起点的边的个数):len[maxn]。局限:排序操作耗时,故使用链式...原创 2019-05-23 16:41:26 · 975 阅读 · 0 评论 -
【PAIR】
用法:typedef pair<int,int> Ptype;访问:Ptype P1;P1.first = 1;P2.second = 2;pair + priority_queue:默认先比较第一个元素,相同时比较第二个元素。可以直接构造一个 pair。priority_queue<Ptype , vector<Ptype> , greater...原创 2019-05-25 15:22:03 · 164 阅读 · 0 评论 -
差分约束
感谢:xuezhongfenfei的BLOG。总体来说,就是把路的权值换成不等式的形式表达。如果B要求至少比A少W个,就是求最长路;如果B要求至多比A少W个,就是求最短路。如果给出的关系是 <W 和 >W,必须变成 <=(W-1) 或 >=(W+1)。不等号的方向全部要一致,才可以构图。...原创 2019-05-25 15:14:46 · 117 阅读 · 0 评论 -
C++头文件【iomanip】的简要讲解
写在前面的话:本篇BLOG仅对竞赛中常用的输出控制进行简要讲解。用途:控制输出流的格式。特点:将操纵运算子写在输出流中。每个数向前寻找最近的操纵运算子,若有连续多个同类算子,仅最后一个有效。四舍六入五找数(若5后有数,进位,反之舍弃)。当算子无效时,程序一般可以正常运行。常用算子:stew(n):设定域宽,默认右对齐,对本身超过域宽的数字无效。setfill(‘char’)...原创 2019-05-20 14:34:13 · 3462 阅读 · 0 评论 -
关于素数筛(埃氏筛和欧拉筛)的个人理解
写在前面:Li Zhuohan的BLOG对本文有极大启发。埃氏筛(Aye Sieve):原理:遍历每个素数,将它的倍数筛掉。为什么从 i*i 开始?例如 i = 7,如果从任意 i * a(a < i) 开始,若 a 是质数,则 a 可以筛掉它;若 a 是合数,则必有比 a 还小的质数可以筛掉它。如此,我们发现埃氏筛法保证了每次新的循环不再重复筛较小的一部分数字,但是由于 ...原创 2019-05-14 21:02:18 · 494 阅读 · 0 评论 -
张昆玮线段树
原创 2019-09-30 14:48:38 · 6658 阅读 · 0 评论