12 2018 档案

摘要:题目链接:传送门 参考文章:传送门 题意:n个数字初始连在一条线上,有三种操作, D x表示x号被摧毁; R 表示恢复剩下的通路 Q表示查询标号为x所在的串的最长长度。 思路:线段树的区间合并。 #include<iostream> #include<cstdio> #include<cstring 阅读全文
posted @ 2018-12-31 11:46 麟阁 阅读(193) 评论(0) 推荐(0)
摘要:题目链接:传送门 题意:给出操作,按照操作进行。 思路:将树状数组设置为二维的就行了。 注意: (1)每次求出的面积是S(x2,y2)-S(x1-1,y2)-S(x2,y1-1)+S(x1-1,y1-1)。 (2)树状数组的lowbit不允许0。 #include<iostream> #includ 阅读全文
posted @ 2018-12-27 21:56 麟阁 阅读(192) 评论(0) 推荐(0)
摘要:题目链接:传送门 题意:n个乒乓球运动员要互相练习,都去一个运动员那里比赛,举办训练的运动员不能水平最高或最低。 现在给出n个运动员的水平,求出最终有多少种组合。 思路:先对运动员进行离散化,然后进行比较,第一位和最后一位运动员的不能举行训练,所以跳过, 对剩下的运动员进行查找,有两种情况 (1)这 阅读全文
posted @ 2018-12-27 21:50 麟阁 阅读(159) 评论(0) 推荐(0)
摘要:题目链接:传送门 题意:日本有东城m个城市,西城m个城市,东城与西城相互连线架桥,判断这些桥相交的次数。 思路:两个直线相交就是(x1-x2)*(y1-y2)<0,所以,对x,y进行排序,按照x从小到大进行排序,x相同,按照y从小到大排序 然后x已经有序,判断y的逆序数。从大到小判断,因为如果从小到 阅读全文
posted @ 2018-12-27 21:41 麟阁 阅读(111) 评论(0) 推荐(0)
摘要:转自:文章 1、暴力求解 C(n,m)=n*(n-1)*...*(n-m+1)/m!,(n<=15); 2、打表 C(n,m)=C(n-1,m-1)+C(n-1,m),(n<=10000); 3、质因数分解 C(n,m)=n!/(m!*(n-m)!),C(n,m)=p1a1-b1-c1p2a2-b2 阅读全文
posted @ 2018-12-26 14:19 麟阁 阅读(2672) 评论(0) 推荐(0)
摘要:转:文章 阅读全文
posted @ 2018-12-26 13:23 麟阁 阅读(296) 评论(0) 推荐(0)
摘要:参考文章一:https://blog.csdn.net/txl199106/article/details/64441994 参考文章二:https://blog.csdn.net/ergedathouder/article/details/55001645 一、基本概念 1、源点:只进不出的点,通 阅读全文
posted @ 2018-12-24 19:45 麟阁 阅读(319) 评论(0) 推荐(0)
摘要:题目链接:传送门 参考文章:https://blog.csdn.net/qiqi_skystar/article/details/50299743 题意:给出一个高h,宽w的方形画板,有高位1宽为wi的单元,用这些单元去覆盖这个画板,每次求出单元在第几行, 从画板的最顶部边开始,顶部不行就最左边,如 阅读全文
posted @ 2018-12-19 20:43 麟阁 阅读(288) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 题目大意: 给出一个序列,一对逆序数就是满足i<j&&a[i]>a[j]条件的一对数字。 每次将a数组的最后一个数放到数组的第一位上,原数组向后移动一位,得到一个新的序列, 求这些序列中最小的逆序 阅读全文
posted @ 2018-12-19 15:32 麟阁 阅读(429) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=2777 参考文章:https://blog.csdn.net/heucodesong/article/details/81038360 题目大意:给出T中颜色,可以给一段区域涂色,初始是全为1的颜色,然后有两种操作 (1)C x y z 阅读全文
posted @ 2018-12-19 13:29 麟阁 阅读(543) 评论(0) 推荐(0)
摘要:问题描述:在无向图中找出一个最小生成树,前提是图是连通的。 一、Prim算法 1、思路:贪心,每次更新每个节点的距离,使这个节点的距离最短,类似于dijkstra算法 2、使用条件:无向连通图 3、算法实现: (1)找到一个起始点,(终点有没有都无所谓),将起点的距离设为0(表示起点到起点的距离是0 阅读全文
posted @ 2018-12-19 12:33 麟阁 阅读(165) 评论(0) 推荐(0)
摘要:一、广度优先搜索 1、思路:距离开始点最近的点首先被赋值,最远的点最后被赋值。 2、适用范围:对于非负数权的无圈图来说(单源最短路径)。 3、算法实现: (1)一个队列记录每个每个节点的编号。 (2)将起始节点入队,将所有节点到起始节点的距离设置为无穷大,起始节点到起始节点的距离为0; (3)取队列 阅读全文
posted @ 2018-12-15 15:22 麟阁 阅读(395) 评论(0) 推荐(0)
摘要:一、基本知识 1、定义:拓扑排序是对有向无圈图的排序,如果存在一条从vi--vj的路径,那么排序过程中vj必定在vi之后。 2、排序条件:必须是有向图并且无圈; 3、拓扑排序的结果不唯一。 二、排序过程 1、存储图结构:图的边集用邻接表存储,用vector数组来代替更好;还要一个存储入度的数组,表示 阅读全文
posted @ 2018-12-12 15:02 麟阁 阅读(379) 评论(0) 推荐(0)
摘要:一、离散化: https://www.cnblogs.com/2018zxy/p/10104393.html 二、逆序数 AC代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using nam 阅读全文
posted @ 2018-12-11 21:59 麟阁 阅读(126) 评论(0) 推荐(0)
摘要:1、概念: 离散化:把无限空间中的有限个体映射到有限空间中去,以此提高算法的时空效率(就是对数据进行压缩)。 eg:原数据:1,999,100000,15;处理后:1,3,4,2; 2、方法一:STL处理 用辅助数组记录要离散的数据,排序是要为了后面的二分 因此,我们要保证相同元素离散后的位置相同, 阅读全文
posted @ 2018-12-11 19:12 麟阁 阅读(158) 评论(0) 推荐(0)
摘要:一、邻接矩阵:就是一个二维数组 特点:对称(矩阵有对称性),空间代价大(空间需求为O(|v|^2)),适用于稠密图,否则空间浪费较大。 #include<iostream> #include<cstdio> using namespace std; const int maxn = 120; con 阅读全文
posted @ 2018-12-11 14:12 麟阁 阅读(367) 评论(0) 推荐(0)
摘要:一、图的基本概念 (一)图的点和边 1、图的定义:一个图G=(V,E)由顶点集V和边集E组成。 2、边:一个点对(v,w),分为有向边,和无向边; 3、图的分类:有向图(点对是有序的),无向图(点对是无向的) 4、点与边的关系:顶点v与w邻接,当且仅当(v,w)属于E 5、权:每条边除了有顶点(v, 阅读全文
posted @ 2018-12-11 13:47 麟阁 阅读(1925) 评论(0) 推荐(0)
摘要:1、hdu-4325 题意:插花,要么给出插花的范围,要么查询某个点的花的个数。 思路:通过更新,每次更新区间S到T的数值,表插入花(这一点一开始没想到), 要么查询某个点的花的数目。 (与以往单纯的区间查询和单点修改的区间和不太相同)。 2、hdu-1166 典型的单点查找,区间求和的问题。(套模 阅读全文
posted @ 2018-12-07 17:47 麟阁 阅读(106) 评论(0) 推荐(0)
摘要:今天做了这4道题,虽然大部分以前做过,但还是有些知识掌握不全。 总结一下所用的树的知识及解决方法 (1)非二叉树的遍历: 非二叉树就是图,所以它的存储结构类似邻接表,c++提供了vector数组可以很好的 存储邻接表,然后遍历就是深搜,广搜也可以,这类题比较简单。 (2)中序+(前序或者后序)--> 阅读全文
posted @ 2018-12-06 22:06 麟阁 阅读(110) 评论(0) 推荐(0)
摘要:思路1:可以用建树来做 由于是先序遍历,所以直接先序建树就行了。 #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int maxn = 12000; int a[maxn],n,num; 阅读全文
posted @ 2018-12-06 21:29 麟阁 阅读(402) 评论(0) 推荐(0)
摘要:转载:https://blog.csdn.net/guotianqing/article/details/79828100 C语言&C++ 1、局部变量 如果在一个函数内部定义了一个静态变量,只给它赋值一次,如果它没有初始值,默认初始值为0,第二次调用函数的时候就不在定义它(即只定义一次)。 静态局 阅读全文
posted @ 2018-12-06 11:01 麟阁 阅读(150) 评论(0) 推荐(0)
摘要:1、二叉树的前序中序转后序: 先通过前序中序建树,再进行后序遍历。 (1)建树:每次记录先序遍历的根,中序遍历的范围; 先找到根在中序遍历中的位置,然后找到左子树,右子树; 分别找到左子树的根和范围与右子树的根和范围。 递归下去,直到st>ed. (2)后序遍历; #include<iostream 阅读全文
posted @ 2018-12-05 20:36 麟阁 阅读(1078) 评论(0) 推荐(0)
摘要:题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805521431773184 思路: (1)用vector记录每个非叶子节点的子节点 (2)通过dfs记录每一层的节点的个数,并记录最高层的节点数量 (3)从0开始 阅读全文
posted @ 2018-12-04 18:52 麟阁 阅读(128) 评论(0) 推荐(0)
摘要:#include<stdio.h> #include<stdlib.h> #define INFO 0x3ff #define NEINFO -0x3ff typedef enum ColorType{ Black,Red }ColorType; struct Node{ int data; Col 阅读全文
posted @ 2018-12-04 13:43 麟阁 阅读(110) 评论(0) 推荐(0)
摘要:伸展树 一、伸展树的基本知识 1、基本思想:一个节点被访问后,它通过一系列的旋转,将节点放到树根上 2、展开:当一项x作为一片树叶被插入时,称为展开的一系列树的旋转使得x成为树的新根。 种类: (1)x的父节点为根节点,直接单左(右)旋即可 (2)x有父亲(p)和祖父(g) 主要有三种旋转:单旋转, 阅读全文
posted @ 2018-12-03 21:52 麟阁 阅读(165) 评论(0) 推荐(0)
摘要:1、定义:AVL(平衡二叉树)是带有平衡条件的二叉查找树。 2、性质: (1)平衡二叉树的深度是O(logN) (2)平衡二叉树是有平衡条件的二叉树,所以在搜索二叉树的基础上加上平衡二叉树的高度。 (3)在高度为h的平衡二叉树中,最少节点数S(h)=S(h-1)+S(h-2)+1 S(0)=1,S( 阅读全文
posted @ 2018-12-01 17:28 麟阁 阅读(403) 评论(0) 推荐(0)