随笔分类 - 算法提高
摘要:LCA最近公共祖先 LCA是指在有根树中,找出某两个节点$u$和$v$的最近公共祖先,即找到一个节点,同时是$u$和$v$的公共祖先,并且深度尽可能大 模板题目链接:https://www.luogu.com.cn/problem/P3379 朴素算法 比如对于下面这样一个树,求LCA的
阅读全文
摘要:题目描述 一家超市要每天24小时营业,为了满足营业需求,需要雇佣一大批收银员。 已知不同时间段需要的收银员数量不同,为了能够雇佣尽可能少的人员,从而减少成本,这家超市的经理请你来帮忙出谋划策。 经理为你提供了一个各个时间段收银员最小需求数量的清单R(0),R(1),R(2),…,R(23)。 R(0
阅读全文
摘要:题目描述 当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近些。FJ有$N$头奶牛,编号从$1$到$N$,沿一条直线站着等候喂食。奶牛排在队伍中的顺序和它们的编号是相同的。因为奶牛相当苗条,所以可能有两头或者更多奶牛站在同一位置上。即使说,如果我们想象奶牛是站在一条数轴上的话,允许有两头或更多奶牛拥有相
阅读全文
摘要:题目描述 给定$n$个区间$[a_i,b_i]$和$n$个整数$c_i$。 你需要构造一个整数集合$Z$,使得$∀i∈[1,n]$,$Z$中满足$a_i≤x≤b_i$的整数$x$不少于$c_i$个。 求这样的整数集合$Z$最少包含多少个数。 输入格式 第一行包含整数$n$。 接下来$n$行,每行包含
阅读全文
摘要:最短路的基本性质 如果图中不存在负权回路,则当算法结束以后,对于边$(x,y,w)$有$dist[y] ⇐ dist[x] + w$成立。 差分约束系统 对于一组不等式 \[ \left\{ \begin{array}{c} x_1-x_2 \leq0 \\ x_1 - x_5 \leq1 \\ x
阅读全文
摘要:题目思路 将一个最小生成树的图,添加一些边,使得成为一个完全图,并且生成的完全图的最小生成树还是原树 算法分析 构建最小生成树的Kruskal算法 首先将所有的边按照从小到大的顺序排序 对于一条边(x,y,w),如果x和y在不在一个连通块中,就说明他们之间没有边相连那么我们相连之后,现在这两个点,各
阅读全文
摘要:题目思路 建立虚拟源点,求最小生成树 题目代码 #include <iostream> #include <cstring> #include <cstdio> using namespace std; const int N = 310, M = N * N; int w[N][N]; int n
阅读全文
摘要:题目 我们有$n$个字符串,每个字符串都是由 a∼z 的小写英文字母组成的。 如果字符串 A 的结尾两个字符刚好与字符串 B 的开头两个字符相匹配,那么我们称 A 与 B 能够相连(注意:A 能与 B 相连不代表 B 能与 A 相连)。 我们希望从给定的字符串中找出一些,使得它们首尾相连形成一个环串
阅读全文