随笔分类 -  图论

摘要:题目大意: Alice有n个字符串S_1,S_2...S_n,Bob有一个字符串集合T,一开始集合是空的。 接下来会发生q个操作,操作有两种形式: “1 P”,Bob往自己的集合里添加了一个字符串P。 “2 x”,Alice询问Bob,集合T中有多少个字符串包含串S_x。(我们称串A包含串B,当且仅 阅读全文
posted @ 2018-11-25 21:02 LiGuanlin 阅读(176) 评论(0) 推荐(0)
摘要:题目描述: https://www.luogu.org/problemnew/show/P4015 题解: 建图跑最小费用流。 对于最大费用,我们可以重新建边,并把权值变成相反数。 也称 最大费用最大流。 代码: 阅读全文
posted @ 2018-11-24 09:09 LiGuanlin 阅读(136) 评论(0) 推荐(0)
摘要:题目描述:给出一棵树,其中1为根。1号有病,每天向下传染一代。每天可以断一条边。求最小传染数。 代码: 阅读全文
posted @ 2018-11-23 20:03 LiGuanlin 阅读(235) 评论(0) 推荐(0)
摘要:题目描述: 给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用。 题解: 这是最小费用最大流模板。 对于EK算法,我们可以通过bfs找出增广路径然后解出最大流。 但是最大流值是一定的,流法却有很多。 我们可以将每条边费用作这条边的边长,用 阅读全文
posted @ 2018-11-22 13:22 LiGuanlin 阅读(132) 评论(0) 推荐(0)
摘要:题目描述: 由于人类对自然资源的消耗,人们意识到大约在 2300 年之后,地球就不能再居住了。于是在月球上建立了新的绿地,以便在需要时移民。令人意想不到的是,2177 年冬由于未知的原因,地球环境发生了连锁崩溃,人类必须在最短的时间内迁往月球。 现有 n 个太空站位于地球与月球之间,且有 m 艘公共 阅读全文
posted @ 2018-11-21 20:17 LiGuanlin 阅读(138) 评论(0) 推荐(1)
摘要:题目描述: W 教授正在为国家航天中心计划一系列的太空飞行。每次太空飞行可进行一系列商业性实验而获取利润。 现已确定了一个可供选择的实验集合E= {E1,E2,…,Em},和进行这些实验需要使用的全部仪器的集合I={I1,I2,…In}。 实验Ej需要用到的仪器是I的子集RjÍI。配置仪器 Ik的费 阅读全文
posted @ 2018-11-21 15:07 LiGuanlin 阅读(211) 评论(0) 推荐(1)
摘要:题目描述: 给出一个网络图,以及其源点和汇点,求出其网络最大流。 题解: 1.Dinic Dinic算法可用于求最大流。 算法过程: bfs分层+dfs搜最大流。 注意:残余网络。 代码: 阅读全文
posted @ 2018-11-20 20:23 LiGuanlin 阅读(199) 评论(0) 推荐(0)
摘要:题目描述: 给出一棵n个节点的树,每个点初始m值为1。 你有三种操作: 1.Add l r k ,将l到r路径上所有点m值加k。 2.Multi l r k ,将l到r路径上所有点m值乘k。 3.Query l r ,设x是l到r路径上的点,y是x的m值。假设有1~y共y个点,随机打乱,求形成错排的 阅读全文
posted @ 2018-11-05 08:10 LiGuanlin 阅读(224) 评论(0) 推荐(0)
摘要:分治+并查集。 阅读全文
posted @ 2018-10-27 20:22 LiGuanlin 阅读(452) 评论(0) 推荐(0)
摘要:题目大意:给出n个bool变量,以及m个条件,条件为x,vx,y,vy,表示 x == vx || y == vy 。 求匹配。 题解: 最近新学了一下2-SAT算法。2-SAT指有若干个bool变量(显然有1/0两个值),还给出若干限定条件,比如: t1 || t2 t1 || !t2 t1 && 阅读全文
posted @ 2018-10-27 07:39 LiGuanlin 阅读(241) 评论(0) 推荐(0)
摘要:题目描述:给出一个无向图,找出使每个点离1号距离都有最小值时边的k个选择方案。 题解: 先跑bfs求最短路,然后总方案数*=节点a与深度小于a的点相连边数。 最后枚举每个点连哪条边。 代码: 阅读全文
posted @ 2018-10-24 13:20 LiGuanlin 阅读(218) 评论(0) 推荐(0)
摘要:题目大意:给出一棵树,其中每个点有其点权。求树上每对点间路径上的极差之和。 题解:鉴于n<=1e6,O( n ^ 2)的算法会T飞。因此可以考虑将极差拆为sigma max - sigma min。 因此得出这样一个做法: 第一步,将点按点权排序。 第二步,从小到大向图中加点,用并查集维护块的大小, 阅读全文
posted @ 2018-10-23 20:29 LiGuanlin 阅读(144) 评论(0) 推荐(0)
摘要:题目大意: 一共有n个人,他们开始互不认识,而每天早上不认识的两个人会变成朋友。一共有m天,每天晚上有的人要去旅行,去旅行的人必须满足ta有至少k个朋友也去旅行 求每天去旅行的最大人数 题解:正向处理比较麻烦,倒不如反向处理。 先假设所有人都去,然后逐个删去不了的人。 代码: 阅读全文
posted @ 2018-10-22 20:04 LiGuanlin 阅读(170) 评论(0) 推荐(0)
摘要:题目大意:给出n个点和m条边,其中n<=1e5,m-n<=20,q次询问,询问两点最短路。 题解:由于m-n<=20,所以可以当树上套环来做。先用最小生成树开一棵树,然后对于每个删掉的边的节点跑dij。 代码: 阅读全文
posted @ 2018-10-17 14:31 LiGuanlin 阅读(154) 评论(0) 推荐(0)
摘要:题目大意:给出一个二分图,求它的最大匹配。 匈牙利算法板子题。。 代码:(写的比较烂) 阅读全文
posted @ 2018-10-06 13:28 LiGuanlin 阅读(151) 评论(0) 推荐(0)
摘要:题目:https://www.luogu.org/problemnew/show/P1850 noip中比较难的期望dp。首先要求出两两最短路,由于300个点90000条边直接选用floyd; 然后就是dp了: dp[ i ][ j ][ 0/1 ]表示”第i天已经提出j次申请,其中第i天不换/换教 阅读全文
posted @ 2018-10-05 10:56 LiGuanlin 阅读(124) 评论(0) 推荐(0)
摘要:题目大意:给出n*m的矩阵以及r,c。求最小路径覆盖。 本来是匈牙利算法裸题,网络流也可以跑一跑。 但是我先粘一个骗分大错解: 这是我考试时写的(因为没好好听匈牙利算法和网络流),但是无脑骗了60? 放到某谷上面测70? 恕我直言在座的数据都很强 接下来是正解: 阅读全文
posted @ 2018-10-04 22:51 LiGuanlin 阅读(152) 评论(0) 推荐(0)
摘要:题目描述 策策同学特别喜欢逛公园。公园可以看成一张N个点M条边构成的有向图,且没有 自环和重边。其中1号点是公园的入口,N号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间。 策策每天都会去逛公园,他总是从1号点进去,从N号点出来。 策策喜欢新鲜的事物,它不希望有两天逛公园的路 阅读全文
posted @ 2018-10-04 22:23 LiGuanlin 阅读(174) 评论(0) 推荐(0)
摘要:题目描述 物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的 阅读全文
posted @ 2018-09-16 20:51 LiGuanlin 阅读(193) 评论(0) 推荐(0)
摘要:题目描述 本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定。 魔力之都可以抽象成一个 n 个节点、m 条边的无向连通图(节点的编号从 1 至 n)。 我们依次用 l,a 描述一条边的长度、海拔。 作为季风气候的代表城市,魔力之都时常有雨水相伴,因此道路积水总是不可避免 的。由于整个城市的 阅读全文
posted @ 2018-09-04 00:34 LiGuanlin 阅读(193) 评论(0) 推荐(0)