摘要: 树状数组 概念 树状数组,依旧是一个线性数组构成,但是其性质却如同树结构一样是立体的。如图所示 可以发现:c[1]=a[1];c[2]=a[1]+a[2];c[3]=a[3];c[4]=c[2]+a[3]+a[4]=a[1]+a[2]+a[3]+a[4];c[5]=a[5];c[6]=a[5]+a[ 阅读全文
posted @ 2019-03-01 20:19 -凨- 阅读(387) 评论(0) 推荐(0)
摘要: 强连通分量 定义:有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连 阅读全文
posted @ 2019-02-25 17:59 -凨- 阅读(274) 评论(0) 推荐(0)
摘要: 运算符号 运算说明 1. and运算 & and运算通常用于二进制的取位操作,例如一个数 and 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。 相同位的两个数字都为1,则为1;若有一个不为1,则为0。 00101 11100 阅读全文
posted @ 2019-02-23 20:53 -凨- 阅读(358) 评论(0) 推荐(0)
摘要: 首先这个题 很毒瘤 被数据卡了 很长时间 题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 输入输出格式 输入格式: 第一行包含三个正整数N、M、S,分别表示树的结点个数、询问的个数和树根结点的序号。 接下来N-1行每行包含两个正整数x、y,表示x结点和y结点之间有一条直接连 阅读全文
posted @ 2019-01-31 20:55 -凨- 阅读(224) 评论(0) 推荐(0)
摘要: queue<int>q; for(int i=0;i<n;i++) //n 节点的总数 if(in[i]==0) q.push(i); //将入度为0的点入队列 vector<int>ans; //ans 为拓扑序列 while(!q.empty()) { int p=q.top(); q.pop( 阅读全文
posted @ 2019-01-31 14:51 -凨- 阅读(293) 评论(0) 推荐(0)
摘要: 主席树 抛出问题 如题,给定N个整数构成的序列,将对于指定的闭区间查询其区间内的第K小值。 输入输出格式 输入格式: 第一行包含两个正整数N、M,分别表示序列的长度和查询的个数。 第二行包含N个整数,表示这个序列各项的数字。 接下来M行每行包含三个整数l, r, kl,r,k , 表示查询区间[l, 阅读全文
posted @ 2019-01-30 19:02 -凨- 阅读(261) 评论(0) 推荐(0)
摘要: deque函数: deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素。但它又与vector不同,deque支持高效插入和删除容器的头部元素,因此也叫做双端队列。deque类常用的函数如下。 (1) 构造函数 deque( 阅读全文
posted @ 2019-01-03 20:30 -凨- 阅读(279) 评论(0) 推荐(1)
摘要: #include #include #include #include using namespace std; inline long long read() { long long x=0, f=1; char c; while (!isdigit(c=getchar())) if (c == '-') f=-1; while(isdigi... 阅读全文
posted @ 2018-12-27 21:44 -凨- 阅读(262) 评论(0) 推荐(0)
摘要: 真的是最快的!!! dalao都在用,你还在犹豫吗? 阅读全文
posted @ 2018-12-27 21:31 -凨- 阅读(410) 评论(1) 推荐(0)
摘要: P1.01基础背包问题对于N个宝石,每个宝石的价值为vi,重量花费为wi。背包的总载重量为W,则试问对于一个背包这么放宝石才能使其装的宝石总价值最大。 具体思路:考虑状态,利用i表示第i个宝石,j表示当前背包的已用空间,d[i][j]就可以表示当前状况下背包内宝石的最大价值。则要求的问题可以转化为d 阅读全文
posted @ 2018-12-25 18:05 -凨- 阅读(267) 评论(1) 推荐(0)