随笔分类 - 图论
摘要:CF786B Legacy 线段树优化建图 "Luogu链接" 裸题,区间连点,点连区间 假如直接连边跑的话一定会T 这时候就需要线段树优化建图了 两个线段树 一个树是区间连点的,叫out 一个树是点连区间的,叫in 但是两个树内部连边的方向不一样 如图 假如相反必然就不对了包含关系错了 剩下的就好
阅读全文
摘要:Luogu_P2045 方格取数加强版 最大费用最大流 "题目链接" 费用流 把每个点都拆成两个点 两个点之间连一条费用为$0$,流量为$inf$的边,一条费用为$w$,流量为$1$的 然后从源点和$(1,1)$连一条流量为$k$费用为$0$的边 $(n,n)$的第二个点到汇点也是流量为$k$费用为
阅读全文
摘要:Luogu_P3304 [SDOI2013]直径 树的直径 "题目链接" 问的是树的几条直径中有几条边相交 设直径上一点到左端点的距离为$lf[i]$ 到右端点的距离为$rt[i]$ 到不过直径上点的最长链长度为$fr[i]$ 明显就是找到两个端点 $lf[x]=fr[x]$且$rt[y]=fr[y
阅读全文
摘要:Luogu_P1402 酒店之王 二分图 "题目链接" 明显二分图 但是怎么维护两个 其实可以在匈牙利之前保存下来当前的链接状态 假如没办法把菜和房间都匹配上就还原会当前状态 具体看代码吧 代码如下: cpp include define mp make_pair using namespace s
阅读全文
摘要:SP2878 KNIGHTS Knights of the Round Table v DCC缩点+二分图染色 "题目链接" 因为互相仇视的骑士不能相邻 所以先把能相邻,也就是不仇视的骑士连上边 然后询问就化为了求图上有多少个点没有被任何奇环包括 那么这时候就需要几个结论 1.两个骑士不在一个点双连
阅读全文
摘要:Luogu_P3225 [HNOI2012]矿场搭建 割点 "题目链接" 这种把点拿走明显就和割点有关系 那么就先求割点 求完割点然后??? 首先dfs每个割点分开的连通块 如果这个连通块没有割点,必然要两个出口 假如有这个联通有一个割点那么一定要放一个,因为假如割点塌了就需要这个点了 假如有两个或
阅读全文
摘要:Luogu_P3469 [POI2008]BLO Blockade tarjan割点 "题目链接" 假如$i$不是割点 那么只会$i$分离出去,因为是有顺序的 所以答案是$2 (n 1)$ 假如$i$是割点 那么设$s$是$i$的儿子,且$s$的$low$值 =$dfn[i]$ 除去$s$还有一些是
阅读全文
摘要:Luogu_P4878 [USACO05DEC] 布局 差分约束(不连通) "题目链接" 又是差分约束 但是这次并没有联通的性质 ~~题目疯狂暗示~~ 无穷远的情况就是互相不连通 那么只好找一个超级源点$0$ 用$0$和所有的点连一条边权为$0$的边 这样的话从$0$跑spfa就可以知道各自的连通块
阅读全文
摘要:Luogu_P3084 [USACO13OPEN]照片Photo 差分约束 "题目链接" 明显可以用差分约束做 设$s[i]$为$0$到$i$最多有多少奶牛 那么每个区间$s[r] s[l 1]==1$ 也就是$s[r] s[l 1] =1$且$s[r] s[l 1] using namespace
阅读全文
摘要:Luogu_P2607 [ZJOI2008]骑士 P1453 城市环路 基环树+树形DP "2607" "1453" 题目大意都是一样的,只要相连就不能同时取 最大化权值 但是有环 那么就在搜到环之后记录$s$和$t$表示环的两边 两次树形DP 第一次强制不取$s$ 第二次可取$s$ 找出两个的最优
阅读全文
摘要:Luogu_P4381 [IOI2008]Island 基环树 "题目链接" 题目描述的就是一个基环树森林 每次必须要用船的就是两棵基环树之间转移 考虑每个基环树的贡献 有两种可能 第一种是不在环上的一条最长的链,也就是直径 第二种是经过环 第一种很好处理,DP求直径 第二种则在DP的时候记录$d[
阅读全文
摘要:Luogu_P1084 疫情控制 树上倍增+贪心+二分 "题目链接" 首先越到根节点越优很显然 所有向上的问题就可以用树上倍增来优化 而且答案具有单调性 显然你ans的时间能完成ans+1也可以 那么就可以二分答案ans,是最大值最小 如何验证这个二分的答案??? 首先把所有的点都上移到1号节点的子
阅读全文
摘要:Luogu P1600 天天爱跑步 树上差分 "题目链接" 树上问题 ~~没看出怎么差分~~ 被观察到的条件有两个 lca前一半(包括lca) $d[S_i] d[x]=w[x]$ $d[i]$表示节点深度 lca后一半 $d[S_i]+d[x] 2 d[lca(S_i,T_i)]=w[x]$ 但是
阅读全文
摘要:POJ3417 Network (闇の連鎖) 树上差分 lca "POJ3417" "闇の連鎖" 奇奇妙妙的树上差分 主要边是树的结构 附加边让树的结构出现环 手画可以发现 设$xy$为附加边,假如第一次切断了$xy$通过树边相连的路径 也就是破坏了环 那么第二次就必定要切断$xy$ 那么就可以通过
阅读全文
摘要:Luogu_P1099 树网的核 树的直径 "题目链接" ~~题面好长,都不想看~~ 又是明明显显的树的直径的题 可以有很多种答案更新方法: 方法一 可以$O(n^2)$的枚举核的一端$p$得出$p+s$和离他们的最远的点 方法二 可以二分偏心距,$O(nlogsum)$ 方法三 求出最长链,然后分
阅读全文
摘要:Luogu P3629 [APIO2010]巡逻 树的直径 "题面链接" 看题就知道应该是连树的直径,也就是最长链 $ans=2(n 1) l1+1$ 但是$k\le2$ 当他是$2$的时候怎么处理??? 只好再跑一遍求树的直径 我们先把之前求出的$l1$的所有边变为$ 1$ 之后再求 $ans=2
阅读全文
摘要:Luogu_P2886 [USACO07NOV]牛继电器Cow Relays 图论 矩阵快速幂 "题目链接" "POJ3613" 题意就是求经过k条边的从st到ed的最短路 我们假设$a[i][j]$为经过一条边的最短路 $a2[i][j]$为经过两条边的。 那么$a2[i][j]=min(a[i]
阅读全文
摘要:题面:https://www.luogu.com.cn/problem/P4556 对于在一条(x,y)路径上将z加1。 就可以树上差分。 x和y都是加1。lca是减1,lca的father也是减1。 但是由于又有很多种不一样的种类。 还需要每个点维护一个线段树。 合并的时候求哪个种类是max。 最
阅读全文
摘要:题面:https://www.luogu.org/problem/P4644 和上一篇题解背景基本一样,就是改成了求最小的花费。 本来应该是通过DP和数据结构优化的。 但是最小花费好像可以用最短路。 将每个时间段用自己的价值连边。 再把每个时间向前一个时间连为0的边。 这样可以保证最多可以跑N个时间
阅读全文
摘要:题目链接: CF:http://codeforces.com/contest/161/problem/D Luogu:https://www.luogu.org/problem/CF161D 点分治的裸题。 点分治关键在于如何更新答案。 找根和分治的步骤很简单。 这道题要求树上路径刚好为K的个数。
阅读全文

浙公网安备 33010602011771号