共 34 页: 上一页 1 2 3 4 5 6 7 下一页 末页
摘要:题意: 给出一个无向连通图,每条边为黑色或者白色。 每条边至多走一次,询问是否可以从$a$走到$b$且至少经过一条黑色边。 分析: 先找出所有的边双连通分量,然后缩点成树。 如果在同一个边双连通分量中有一条黑边,那么一定存在一个环经过这条黑边并且回到原点。 缩点后,如果某一双连通分量中有黑边,就把它 阅读全文
posted @ 2016-04-05 15:31 AOQNRMGYXLMV 阅读 (168) 评论 (0) 编辑
摘要:题意: 给出一个无向连通图,有$m$次操作,每次在$u, v$之间加一条边,并输出此时图中桥的个数。 分析: 先找出边双连通分量然后缩点得到一棵树,树上的每条边都输原图中的桥,因此此时桥的个数为树的节点个数减一。 然后每次添加一条边,相当于将树上对应节点$u, v$之间的边都变为非桥的边。 每次暴力 阅读全文
posted @ 2016-04-05 11:23 AOQNRMGYXLMV 阅读 (77) 评论 (0) 编辑
摘要:题意 给出一个有向图,并给出仙人掌图的定义 1. 图本身是强连通的 2. 每条边属于且只属于一个环 判断输入的图是否是强连通的。 分析 杭电OJ上的数据比较弱,网上一些有明显错误的代码也能AC。 本着求真务实的精神,取网上查阅了相关资料,整理出来一个对自己来说还比较明确的算法。 从DFS森林说起 从 阅读全文
posted @ 2016-04-05 01:18 AOQNRMGYXLMV 阅读 (605) 评论 (0) 编辑
摘要:先找出强连通分量缩点,然后就是最小路径覆盖。 构造一个二分图,把每个点$i$拆成两个点$X_i,Y_i$。 对于原图中的边$u \to v$,在二分图添加一条边$X_u \to Y_v$。 最小路径覆盖 = 顶点个数 最大匹配数 cpp include include include include 阅读全文
posted @ 2016-04-04 17:56 AOQNRMGYXLMV 阅读 (151) 评论 (0) 编辑
摘要:题意: 给出两棵树,每棵树的节点都有一个权值。 同一棵树上的节点的权值互不相同,不同树上节点的权值可以相同。 要求回答如下询问: $u_1 \, v_1 \, u_2 \, v_2$:询问第一棵树的路径$u_1 \to v_1$的节点权值 与 第一棵树的路径$u_2 \to v_2$的节点权值的交集 阅读全文
posted @ 2016-04-03 20:25 AOQNRMGYXLMV 阅读 (197) 评论 (0) 编辑
摘要:题意: 给出一个长度为$n(1 \leq n \leq 10^5)$的序列$a$ 有若干次查询 :找到一个$x$使得$\sum \limits_{l \leq i \leq r} \left | x a_i \right |$的值最小。 分析: 有这样一个结论:$x$为子序列的中位数时差的绝对值之和 阅读全文
posted @ 2016-04-01 23:37 AOQNRMGYXLMV 阅读 (113) 评论 (0) 编辑
摘要:题意: 查询区间第$k$大 分析: "之前" 是用主席树做的,现在学一下划分树。 "学习链接" 划分树的空间复杂度为$O(nlogn)$,这点比主席树更优。 cpp include include include using namespace std; const int maxn = 10000 阅读全文
posted @ 2016-04-01 19:53 AOQNRMGYXLMV 阅读 (115) 评论 (0) 编辑
摘要:题意: $S$为一个自然数集合,定义函数$mex(S)$为集合中没有出现的最小自然数。 给出一个长度为为$n$序列$a$,设$S_{l,r}$表示由$a_l \sim a_r$构成的集合。 求: $$\sum\limits_{1 \leq l \leq r \leq n}mex(S_{l,r})$$ 阅读全文
posted @ 2016-04-01 10:52 AOQNRMGYXLMV 阅读 (74) 评论 (0) 编辑
摘要:题意: 要求维护一个数据结构,支持下面三种操作: $0 \, e$:插入一个值为$e$的元素 $1 \, e$:删除一个值为$e$的元素 $2 \, a \, k$:查询比$a$大的数中的第$k$小 分析: 因为插入的数在$10^5$内,所以不需要离散化。 维护一棵主席树,每次插入或者删除元素都新建 阅读全文
posted @ 2016-03-31 23:27 AOQNRMGYXLMV 阅读 (62) 评论 (0) 编辑
摘要:题意: 一开始有一个空序列,然后有下面四种操作: 在序列尾部加入一个值为$x$的元素,而且保证序列中每个元素都互不相同。 查询区间$[s,t]$中第$k$小的元素。 查询元素$x$的名次 查询整个区间的第$k$小值 分析: 首先离线一下所有查询,然后离散化,剩下的都是很经典的主席树操作。 cpp i 阅读全文
posted @ 2016-03-31 23:06 AOQNRMGYXLMV 阅读 (59) 评论 (0) 编辑
摘要:题意: 在二维平面的第一象限有$n(1 \leq n \leq 10^5)$条平行于$x$轴的线段,接下来有$m$次射击$x \, a \, b \, c$。 每次射击会获得一定的分数,假设上一轮的分数为$pre$,那么这次射击就会在位置$x$处射击最近的$K=(a \cdot pre + b) % 阅读全文
posted @ 2016-03-30 17:00 AOQNRMGYXLMV 阅读 (96) 评论 (0) 编辑
摘要:题意: 给出一棵$n(1 \leq n \leq 10^5)$个节点的树,每条边和每个点都有一个权值,初始所有权值为0。 有两种操作: $ADD1 \, u \, v \, k$:将路径$u \to v$上所有节点的权值都加上$k$ $ADD2 \, u \, v \, k$:将路径$u \to v 阅读全文
posted @ 2016-03-28 20:44 AOQNRMGYXLMV 阅读 (186) 评论 (1) 编辑
摘要:题意: 给出一棵$n(1 \leq n \leq 200000)$个节点的树,每个节点有一个权值。 然后有$2$种操作: $1 \, a \, b \, c$:将路径$a \to b$上的所有点的权值都变为$c$ $2 \, a \, b \, c$:查询路径$a \to b$的权值和最大的非空连续 阅读全文
posted @ 2016-03-21 20:00 AOQNRMGYXLMV 阅读 (60) 评论 (0) 编辑
摘要:题意: 给一棵$n(1 \leq n \leq 10^5)$个节点的二叉树,除叶子节点外,每个点都有左儿子和右儿子。 每个点上都有一个权值。 游戏规则是这样的:在根节点放一个权值为$X$的小球,假设当前节点的权值是$w_i$ 如果$X=w_i$,小球就停在这个节点。 如果$Xw_i$,小球以$\fr 阅读全文
posted @ 2016-03-21 11:24 AOQNRMGYXLMV 阅读 (72) 评论 (0) 编辑
摘要:题意: 给出一棵树,每条边有一个容量。 有若干次询问:$S \, T \, K \, A \, B$,求路径$S \to T$的最大流量。 有两种方法可以增大流量: 花费$A$可以新修一条管道,管道可以连接任意两个点,两个点之间可以有任意条管道连接,新修的管道容量为$1$ 花费$B$可以使某条管道( 阅读全文
posted @ 2016-03-21 11:05 AOQNRMGYXLMV 阅读 (58) 评论 (0) 编辑
摘要:题意: 给出一个长度为$n(n \leq 10^5)$的序列,最开始时间$t=0$,支持下面几个操作: $C \, l \, r \, d$:将区间$[l,r]$每个数都加上$d$,并且时间$t$增加1秒 $Q \, l \, r$:查询当前时间区间$[l,r]$所有元素之和 $H \, l \, 阅读全文
posted @ 2016-03-18 10:34 AOQNRMGYXLMV 阅读 (124) 评论 (0) 编辑
摘要:题意: 有一个长度为$n(1 \leq n \leq 10^5)$的序列$a$ 询问区间$[l,r]$中不超过$h$的数字的个数 分析: 离线查询,将所有的$a_i$和$h_i$离散化,然后直接查询就可以了。 cpp include include include using namespace s 阅读全文
posted @ 2016-03-18 00:10 AOQNRMGYXLMV 阅读 (150) 评论 (0) 编辑
摘要:题意: 给出一棵$n(n \leq 4 \times 10^4)$个节点的树,每个节点上有个权值,和$m(m \leq 10^5)$个询问。 每次询问路径$u \to v$上有多少个权值不同的点。 分析: 树分块 首先将树分块,每块的大小为$\sqrt{n}$左右。 然后将询问离线处理,按照区间上的 阅读全文
posted @ 2016-03-17 23:01 AOQNRMGYXLMV 阅读 (203) 评论 (0) 编辑
摘要:题意: 给$n(1 \leq n \leq 10^5)$一棵树,每个点有个权值。 还有$m(1 \leq m \leq 10^5)$个询问: $u \, v \, k$,查询路径$u \to v$上权值第$k$小的权值。 分析: 和普通的区间一样,对于树维护到根节点的路径信息,父亲节点代表的树就是它 阅读全文
posted @ 2016-03-17 01:33 AOQNRMGYXLMV 阅读 (80) 评论 (0) 编辑
摘要:题意: 给出$n(1 \leq n \leq 10^5)$个数字和$m(1 \leq m \leq 5000)$个询问。 每次询问形式如下: $l \, r \, k$表示询问区间$[l,r]$从小到大排序后第$k$个数字的大小。 分析: 推荐 "这篇主席树的教程" ,里面的图片十分简洁明了,一图胜 阅读全文
posted @ 2016-03-15 15:32 AOQNRMGYXLMV 阅读 (77) 评论 (0) 编辑
共 34 页: 上一页 1 2 3 4 5 6 7 下一页 末页