图论
QAQwdd
这个作者很懒,什么都没留下…
展开
-
Luogu1197 [JSOI2008]星球大战
题目链接 ##https://www.luogu.org/problemnew/show/P1197题解并查集水过。。。想必顺着题意只能暴力了,因为涉及到拆点很麻烦所以我们反着来(笑)仔细想想,反着来不就是建点了吗///233于是并查集判断联通块,OK大功告成eg:那个数据范围是真的坑!!!1 <= n <= 2m 硬生生看成 1 <= m <= 2...原创 2018-07-13 20:41:51 · 170 阅读 · 0 评论 -
网络流模板
网络流,顾名思义,是求网络中的流量。这里的教程比较容易理解主要性质:容量限制 任何边的流量不能超过其流量。斜对称 显然,若一条边的流量为w,即从u->v流量为w,可以看作是从v->u流量为-w。流量守恒 网络中除原点,汇点以外,任何节点不储存流。这个也比较容易说明,因为如果某一时刻某个中间节点储存了流,则下一时刻它会储存更多。最后储存满了,这些满的流量不能流向汇点,就浪费了...原创 2018-10-28 20:01:32 · 364 阅读 · 0 评论 -
NOIP2016 天天爱跑步 LCA+差分+桶
传送门NOIP史上最难一题。。。部分分出正解系列测试点1-5:直接模拟即可测试点6-8:树退化成一条链。我们先从dep[S]<dep[T]dep[S]<dep[T]dep[S]<dep[T]的情况开始想。depdepdep表示该点到点1的距离。如果路径上有个点满足被观察到的条件,那么dep[i]−dep[S]=w[i]dep[i]-dep[S]=w[i]d...原创 2018-10-19 21:04:35 · 250 阅读 · 0 评论 -
ZJOI2012 旅游 树的直径+建图
传送门这题神了。。。题意:在凸多边形中,画一条两个不相邻顶点之间的线段,使经过的三角形个数最多。题解:对于两个有公共边的三角形,可以发现若有一条直线穿过某个三角形并从公共边出去,则一定会选中两个三角形(显然)。而如果直线穿过的是另外两条边,就会和另外两条边外面的三角形连在一起。所以朝着有公共边的两个三角形连一条边。不难发现建出来的图是一棵树,而直线是不能分叉的,所以问题就转化为求这棵树的...原创 2018-10-06 16:51:30 · 418 阅读 · 0 评论 -
NOIP2017 宝藏 状压DP
借鉴了一下这位dalao的题解 NOIP2017的D2T2,状压DP。 看到n的范围很容易想到是状压DP,但是怎么转移就很有趣了设dp[i][S]dp[i][S]dp[i][S]表示最大深度为iii时,已开通的点状态为SSS时的最小花费。 每次转移时,枚举不在集合中且可以转移的点,枚举子集进行转移。 用dp[i][S]dp[i][S]dp[i][S]与S′S′S'中所有点的更新代价更新...原创 2018-09-14 18:58:16 · 299 阅读 · 0 评论 -
NOIP2013 华容道 BFS + SPFA
传送门初看这题时,觉得应该就是一个大爆搜,然后调了半天也没调出来 看了下题解才猛然醒悟…题解: 容易发现,移动方块就是移动空格。这样的话,整个地图中就只有空格及其旁边的块才能移动。因此,我们预处理出每一个块向四周移动的步数,即每个方块某个方向的空格移动到另一个方向的步数。用State[i][j][p1][p2]State[i][j][p1][p2]State[i][j][p1][p2]...原创 2018-09-14 18:22:08 · 161 阅读 · 0 评论 -
CF938D Buy a Ticket 最短路 + 建图
传送门流行乐队“Flayer”将在n个城市开演唱会 这n个城市的人都想去听演唱会 每个城市的票价不同 于是这些人就想是否能去其他城市听演唱会更便宜(去要路费的)输入格式: 第一行包含两个整数n和m 接下来m行 每行三个数 u v k 表示u城市到v城市要k元 接下来n个数 表每个城市的票价题目显然是最短路。首先可以想到往返其实就是路径的两倍长度(最短路还是这条路径)跑多源最短路更新答案。我在...原创 2018-09-23 22:33:55 · 560 阅读 · 0 评论 -
BZOJ1097 [POI2007] 旅游景点atr 最短路+状压DP
题目大意:1到n的最短路,其中要经过k个点,且有顺序要求。题解:注意到k很小,所以记录每个点的状态。 预处理出前k + 1个点的最短路,然后跑DP就行了。 注意DP的时候要剪枝,不然会T。 话说这题用SPFA比Dijkstra好像快一点#include<cstdio>#include<queue>#include<cstring&am原创 2018-08-20 19:05:35 · 417 阅读 · 0 评论 -
APIO2010 巡逻 树的直径
题目大意:给定一棵树,加上1或者2条边,求在加边后,从 1 号节点出发遍历所有边再回到 1 号点的最小距离是多少。加上的边必须恰好经过一次。 题解:不建立新的道路时,根据DFS遍历思想可以证明每条边都要走2次,总巡逻长度为2*(n - 1)。建立一条新道路时,被这条道路所覆盖的边就只需要经过一次了(因为形成了环)。所以让这条边覆盖树的直径,答案为2(n - 1) - d1 +1。建立两...原创 2018-08-17 20:37:57 · 274 阅读 · 0 评论 -
JLOI2014 松鼠的新家 LCA+树上差分
传送门题解:很简单,就是求树上点的差分。把从a[i]到a[i+1]的路径上的点覆盖一次,记录总覆盖次数 点的差分和边的差分略有不同,不过大体思路都是差不多的,边的差分是在起点,终点tag+1,LCA处-2;而点的差分是起点,终点tag+1,LCA及其父亲tag-1。为什么?模拟一下就行了 然后求个子树和.jpg 注意这道题起点和终点是连在一起的,所以除了第一条之外的所有起点都要tag-1...原创 2018-08-26 21:22:26 · 232 阅读 · 0 评论 -
AHOI2008 紧急集合 LCA
题目大意:给一棵树,求三点之间最短距离, 并求最短距离所在的点。 题解:求出两两之间的LCA,观察可以发现,有两个LCA是相同的,且这个点一定在所有LCA中深度最浅。 画一个图可以发现,集合点就是另一个LCA,因为这个点是这三个点互相路径连接起来的公共点。 至于距离,找个例子可以发现距离是dep[a]+dep[b]+dep[c]−dep[lca1]−dep[lca2]−dep[lca3]de...原创 2018-08-19 16:02:34 · 185 阅读 · 0 评论 -
JLOI2011 飞行路线 分层图+最短路
起初不知道分层图的概念,做了以后才发现哦原来这就是分层图啊分层图的概念:将一个复杂的图分层,有点像DP中的状态,把跳到下一层的条件认为是状态转移,然后直接一遍最短路。由于标准的分层图空间太大,所以直接在原图进行转移了(更像DP了不是吗)SPFA(被安排了)#include<cstdio>#include<queue>#include<cstring...原创 2018-08-16 21:31:25 · 300 阅读 · 0 评论 -
HAOI2010 软件安装 强连通分量+树上背包
题意:有n个软件,有的软件依赖于某些软件,求最大空间为m时的最大收益。 题解:容易发现有些软件互相依赖组成了一个环。此时这些依赖关系组成的基环树中,环没有出边。所以把环缩成点。此时,森林中除了缩过点的树以外,根节点都有一条来自虚拟节点0的入边。因此,我们从0点向每个缩过点的树连边,再做一次树上背包就行了。#include<cstdio>#include<cstring...原创 2018-08-16 21:12:25 · 170 阅读 · 0 评论 -
NOIP2012 疫情控制 贪心+二分+倍增
1原创 2018-08-26 08:55:07 · 299 阅读 · 0 评论 -
NOIP2015 运输计划 LCA+树上差分+二分
题目大意:给定一棵树,再给定k条路径,求把一条边权改为0后使这些路径的最长距离最小。题解:首先可以想到用二分(谁说想得到的!!!),在枚举出来的长度mid上找到长度大于mid的路径,检查把这些路径中最长的公共边置为0之后的最长链。若长度还是大于mid,则该长度不合法。实际编码中,可以用树上差分来解决边覆盖的问题。 我用倍增写的LCA,如果换成树链剖分或者Tarjan,RMQ什么的会更快~...原创 2018-08-18 21:26:17 · 193 阅读 · 0 评论 -
邻接表模板
数组 fir[N]:记录该点到达的第一条边 nxt[M]:记录下一条边(为了方便枚举与一个点相连的所有边) to[M]:记录该条边所到达的点 len[M]:记录该条边的权值代码 memset(fir,-1,sizeof(fir));//初始化void add(int a,int b,int c){//a->b len[cnt]=c;//第原创 2018-02-05 18:27:12 · 337 阅读 · 1 评论 -
LuoguP3831 [SHOI2012]回家的路 分层图+最短路
传送门妥妥的分层图分横竖来建图,同一列的点(+起点终点)相邻之间连长度为距离*2的边,中转站分成两个点,互相连长度为1的边。注意起点和终点是可以既从横点开始也从竖点开始的,所以横竖点互相连长度为0的边就行了。#include<queue>#include<cstdio>#include<cstring>#include<algorithm&g...原创 2018-11-08 18:49:54 · 215 阅读 · 0 评论