- 博客(5)
- 资源 (10)
- 收藏
- 关注
原创 校赛F 比比谁更快(线段树)
http://acm.cug.edu.cn/JudgeOnline/problem.php?cid=1153&pid=5 题意:给你一个字符串,各两个操作: ch=0,[l,r]降序 ch=1,[l,r]升序如果是newer的话,应该会想用暴力,直接对区间sort,但是很明显是超时的(校赛怎么会这么简单呢!) 很容易想到线段数,对于线段数,我们可以先理清一下知识点,线段树大...
2018-06-16 20:57:13 272
原创 POJ 3683 Priest John's Busiest Day
看这个题目之前可以先看POJ2186复习一下强联通分量的分解题意:给出N个开始时间和结束时间和持续时间三元组,持续时间可以在开始后或者结束前,问如何分配可以没有冲突。—————–我是分割线———————————先解释一下合取范式(离散数学已经学过): 如果合取范式中的每个字句的文字个数不超过两个就称为2-SAT问题 一般性称为n-SAT问题举个栗子:(a∨b)∧¬a(a∨b...
2018-06-16 20:46:39 307
原创 POJ 2186 Popular Cows
题意是:求其他所有牛都认为是Popular的牛的个数!具体规则在原题中 本题如果没有强联通分量的的知识的话,很容易会想对每一个其他顶点来一遍DFS,如果其他顶点对当前顶点都可达,说明这个顶点是被其他牛认为popular,然而时间复杂度为O(N*M)有了强联通分量的知识就好办了,对图进行强联通分量分解,至多有一个强联通分量满足条件。在进行强联通分量分解后,可以得到强联通分量拓扑排序后的顺序...
2018-06-16 20:41:13 270
原创 线段树模板(单点更新,区间更新,RMQ)
1.单点更新说明单点更新,区间求和(你问我单点求和??你就不会把区间长度设为0啊?) • sum[]为线段树,需要开辟四倍的元素数量的空间。 • build()为建树操作 • update()为更新操作 • query()为查询操作 时间复杂度:O(nlogn)使用方法build(1, n); 建立一个叶子节点为n个的线段树update(pos...
2018-06-16 17:08:06 1902 1
原创 hdu2586 How far away ?
这个题目只要建立一个树,然后查询任意2个点之间的距离,没有更新操作,所以可以用LCA来做。LCA就是寻找最近公共祖先,这有什么用呢?这是因为有一个性质,假设B和C的最近公共祖先是A,那么对于整个树的根节点D,都有:|BD|+|CD|-|AD|*2=|BC|也就是说,只要事先求出所有点到D的距离dist(dist的大小为n),然后对于输入的B和C,只需要求出最近公共祖先,即可...
2018-06-11 22:09:44 160
算符优先文法
2017-11-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人