- 博客(13)
- 收藏
- 关注
原创 Kruscal算法的简单介绍
一.最小生成树一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。二.Kruscal算法1.kruscal算法的第一步是给所有边按照从小到大的顺序排列(用sort快速解决)然后判断每一条边(u,v)。1)如果u和v在一个连通分量里,加上(u,v)后必定形成一个环,所以不能选择;2)如果u和v在不同的连通分量里,加入
2017-10-23 18:12:22
953
原创 【裸】线段树模板
存一个很裸的模板,以后方便查找。#include#define lc (x<<1)#define rc (x<<1|1)#define mid ((l+r)>>1)using namespace std; int n,q;int a[200005],s[800005]={0},tag[800005]={0};char ss[10];void build(int x,int l,in
2017-10-16 21:29:40
293
原创 树状动规 USACO Feb 2002 Rebuilding Roads 重建道路
Description一场可怕的地震后,人们用n个牲口棚(1Input第1行:2个整数,N,P 第2...n行:每行2两个整数i和j,表示节点i是节点j的父节点 Output一行,包含一旦被破坏将分离出恰含P个节点的子树的道路的最小数目.Sample Input11 61 21 31 41 52 62 72 8
2017-10-16 19:12:43
690
原创 洛谷P2066 机器分配
总公司拥有高效设备M台,准备分给下属的N个分公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M≤15,N≤10。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M。输入格式:第一行有两个数,第一个数是分公司数N,第二个数是设备台数M。接下来是一个N*M的矩阵,表明了第 I个公司分配 J
2017-10-16 16:52:02
380
原创 洛谷P3781 [TJOI2010] Middle 中位数 详细题解
查看原题请进入传送门:https://www.luogu.org/problem/show?pid=3871先说说这道题的做法:需要用两个堆来维护中位数左右的数!一个大根堆bigheap( bhp )维护中位数mid左( 比mid小 )的数,队首( bhp[0] )表示离当前mid最接近但小于mid的数。一个小根堆smallheap( shp )维护中位数mid右( 大于等于mid
2017-08-16 20:01:27
573
原创 结构体重载运算符版高精度!
神奇的高精度:支持高精度加法,大于小于比较,赋值。用了 *this#include#include#includeusing namespace std;#define maxn 30struct bigint{ int a[maxn]; bigint() { memset(a,0,sizeof(a)); } bigint& operator
2017-08-09 10:56:38
1027
原创 矩阵乘法解fibonacci斐波那契数列
#include #include using namespace std;struct mat{ long long d[2][2];};mat operator *(const mat&a,const mat&b)//定义矩阵乘法{ mat ans; for(int i=0;i<=1;i++) for(int j=0;j<=1;j++)
2017-08-08 13:25:47
669
原创 堆栈的简单介绍
一.堆栈的定义 何为堆栈 堆栈(简称栈)是一种最常用和最重要的数据结构,是一种只能在一段进行插入或删除数据操作的线性表。表中允许需进行插入、删除操作的一段称为栈顶。栈顶当前位置是动态的,由一个称为栈顶指针的位置指示器表示。表的另一端成为栈底。当战中没有数据元素是,称为空栈。栈的插入操作通常称为进栈或入栈。站的删除操作通常称为退栈或出栈。 栈的主要特点是“后进先出”(FILO )(First in last out),即后入栈的元素先弹出。每次进栈的数据元素都放在当前栈顶元素之上,成为新的栈顶元素
2017-08-05 19:07:48
910
原创 LCA (最近公共祖先问题)
摘自kiana810学长的讲课内容一.概述LCA(Least Common Ancestors),即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先(另一种说法,离树根最远的公共祖先)。二.方法1.树上的路径:•众所周知,两点在树上的路径是唯一的,但是如何快速维护路径的相关信息(路径权值和、路径边权最大/最小值等)?•在解决这些问题之前,首先考虑一个问题:如
2017-08-05 11:58:41
425
原创 洛谷P1314 NOIP2011 聪明的质检员 原题+详细题解
小T 是一名质量监督员,最近负责检验一批矿产的质量。这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi 。检验矿产的流程是:1 、给定m 个区间[Li,Ri];2 、选出一个参数 W;3 、对于一个区间[Li,Ri],计算矿石在这个区间上的检验值Yi:
2017-08-03 19:18:08
1680
2
原创 BZOJ 1787 [Ahoi2008]Meet 紧急集合 题解
Description:InputOutputSample Input6 41 22 32 44 55 64 5 66 3 12 4 46 6 6Sample Output5 22 54 16 0HINT/***********
2017-08-03 16:05:22
459
原创 并查集的基本介绍
简单介绍并查集:1.并查集的定义:并查集是一种树型的数据结构,用于处理一些不相交的集合的合并及查询问题。常常在使用中以森林来表示。集就是让每个元素构成一个单元素的集合,也就是按一定顺序将属于同一组的元素所在的集合合并。简单来说:•并查集是解决动态连通性的一类树形数据结构• 重点:每个节点只有父亲指针,但压缩树的高度,以实现快速检索树根• 实现方法:路
2017-08-01 12:34:30
710
原创 队列的简单介绍
简单介绍队列的定义及各种操作:1.队列的定义: 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插
2017-07-31 22:18:09
573
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人