![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
入门图论
Wi1der
这个作者很懒,什么都没留下…
展开
-
CF-Div.2 D-Graph Subset Problem-找k大的完全图
题目题意:给你一个图,从图中找出一个子图:这个子图中每个点的度为k;这个子图是 有k个点,并且是完全图。符合这两个中的 任意一个就行输出:符合 1 :第一行:1 和 子图的点数第二行:子图中点的编号符合 2 :第一行:2第二行:子图中点的编号思路:...原创 2020-11-20 08:35:49 · 351 阅读 · 0 评论 -
2020 ccpc 威海 C 树形DP(思维题吧......)
题目题面:题意:给一棵树,a,b,c 以一些点为起点(输入的最后三行就是他们各自的起点), 然后他们三从各自的起点 共同去一个距离和最小的点,求距离和的数学期望.其实一开始不太会,因为不懂这三个点,之间的关系,但看到这个dis(a,b,c)=(dis(a,b)+dis(a,c)+dis(b,c))/2, 秒会题解思路:三点之间的关系 能这样转成 三个的两点之间的关系:dis(a,b,c)=(dis(a,b)+dis(a,c)+dis(b,c))/2dis(a,b,c)=(dis(a,b原创 2020-10-29 11:32:56 · 183 阅读 · 0 评论 -
带花树
弥补下暑假打多校的遗憾就是一般图匹配二分图没有奇环,而一般图有。所以匈牙利算法中的寻找增广路然后路径取反的方法在一般图上就不适用了。带花树是要解决奇环的问题。一个奇环里至少有一个点不能匹配,那就干脆把一个奇环缩成一个点,路径取反的时候再暴力展开一个个取反。所以 复杂度不是很友好 n3n^3n3详细流程:我们给所有点黑白染色。假设开始增广的点是黑点。把所有黑点压进队列中顺次处理。对于一个黑点u,找与他相邻的点v,会出现一下几种情况:u,v已经被缩成一个点了,就不管它。v是白点,说明已经被匹原创 2020-10-09 20:10:23 · 71 阅读 · 0 评论 -
2020杭电多校第六场-F - A Very Easy Graph Problem-换根dp
题目链接题面:大致题意:n个点,m条边。图上每个点有白色或黑色,然后m条边的边权是 2^i ( i 是从1-n) ,然后 问你图上所有的任意两黑白点之间的最短距离和.分析:先能一眼看出是,其实是一颗树吧?(相当于建虚树的意思)大体上: 可以先求出每个点到白色点(0号点)的距离和,最后只加1号点到每个0号点的距离就行。第一次dfs 先求每一个点到他的子树中的所有白色点的距离和(之后当前这个点会和根节点操作下(换根))第一次求出后,dp 存的就是 他到 他的子树中的 所有0号点的距离和, si原创 2020-10-02 09:05:28 · 70 阅读 · 0 评论 -
2020牛客多校10-J- Identical Trees-树形dp+建图费用流
题目链接题面:大致题意:给两颗树,然后有一种操作就是修改树的结点编号,现在让两棵树变成相同的,问最少需要修改几次?分析一波:先声明下:x1 是第一棵树,他的一些子节点 (子树) y11,y12,y13…x2 是第二棵树,他的一些子节点 (子树) y21,y22,y23…1: 两个树必须要同构,才能修改成一样的。为啥要匹配?修改的时候,假如在 x1 的子树 和 x2 的子树中,同构的子树,有好几类,然后 每类中,y11 可能变成 y22 要优与变成 y21…总之汇合起来,我们原创 2020-09-26 10:11:36 · 137 阅读 · 0 评论 -
洛谷P2472-最大流
题目链接分析:源点 s 连蜥蜴的出生点 容量为INF,每个石柱大于0的点,自建边,容量为初始的高度(限制流量),每个大于0的点 再求下曼哈顿距离能不能到图外,就连下汇点.模板题啊~~but: 这么简单的题,我一直WA ,明天等队友来de bug吧!!! 代码先不放了....原创 2020-09-24 21:45:52 · 122 阅读 · 0 评论 -
洛谷P2825-最大匹配
题目链接题面:随便BB几句(和题目没多大关系):感觉这个有点不是很好想,比那个扩容难想一点。没有洛谷的算法标签,很难去想这是一道建图最大匹配的题,大佬们tql声明下:块1 : #(硬墙) 和 行列 隔开的块快2: 在块1中 * 隔开的块也就是说 块2 是块1的子集(别杠那么清楚,懂什么意思就行)分析:炸弹炸的是横竖 ,那么是不是就是所在的块1中 横竖都没了,所以相当于横竖匹配了,那么我们建图的时候对于 横竖的块1 ,进行建边,建的时候,这一块是一个点 (这个 表达不清看代原创 2020-09-24 21:39:09 · 87 阅读 · 0 评论 -
洛谷-P2604-最大流-费用流
题目链接题面:分析:第一问就是裸的dinic, 第二问 需要有点想法, 最大流增加K所需的最小扩容费用, 先想下怎样能增加,再想下怎么限制增加K?deal:怎样增加 就是对于整个图 加边 容量为 INF 花费为之前的花费,限制增加 K的话,我们只要 建一个源点->1 容量为 K费用流模板题#include<bits/stdc++.h>#define ks ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)#defin原创 2020-09-24 21:12:12 · 95 阅读 · 0 评论 -
CF-1343E-E. Weights Distributing
这里题意:n个点,m条边,a,b,c是节点编号,这个人要先从a到b再到c,第二行是m条边的权值,你可以随意给边加权,问你从a到b到c 的最短路是多少?思路:第一眼看感觉是三次最短路,我先是这么写的,先让每条边权为1,第一次最短路以a为起点得到(a->b)len1, 然后标记边,(a_>c)减去刚刚标记的边就是 len3,第二次最短路(b->c)得到的值减去遇到的标记...原创 2020-04-26 21:04:55 · 181 阅读 · 0 评论 -
牛客算法周周练1-C.Borrow Classroom
题目题面:每年的BNU校赛都会有两次赛前培训,为此就需要去借教室,由于SK同学忙于出题,这个事情就由小Q同学来跑腿。SK同学准备从宿舍出发,把借教室的单子交给小Q同学让他拿去教务处盖章,但是何老师突然发现SK同学好像借错教室了,想抢在借教室的单子被送到教务处之前拦截下来。现在把校园抽象成一棵n个节点的树,每条边的长度都是一个单位长度,从1到n编号,其中教务处位于1号节点,接下来有q个询问,每...原创 2020-04-08 00:38:16 · 132 阅读 · 0 评论 -
POJ-3177
题意: 有n个牧场,Bessie 要从一个牧场到另一个牧场,要求至少要有2条独立的路可以走。现已有m条路,求至少要新建多少条路,使得任何两个牧场之间至少有两条独立的路。两条独立的路是指:没有公共边的路,但可以经过同一个中间顶点.输入: 第一行输入 n和m,第二行到第m+1行输入图的路径;输出: 新建的边数。思路: 每个点之间有...原创 2020-03-29 21:43:24 · 89 阅读 · 0 评论 -
POJ3662-Telephone Lines
↵题目链接解题思路 可以免费k条路,然后只需要支付权值最大的一条路。二分。对答案进行二分,小于等于mid的时,将路的权值标为0,大于mid时,将路的权值标为1。(mid是需要支付的,免费k条是大于mid的。因为二分枚举的mid就是答案,然后如果等于mid的话mid是答案也成立)然后求最短路。二分的条件是dis[n]小于等于mid,r=mid;dis[n]大于mid,l...原创 2020-02-25 11:16:28 · 82 阅读 · 0 评论 -
NOIP2009-最优贸易
题目链接解题思路: 对于每个地点,找到前面最小的,找到后面最大的。然后遍历每个点,找出差值最大。#include<bits/stdc++.h>#include<queue>using namespace std;const int maxn=3e5+177;int n,m;struct Node{ int next; in...原创 2020-02-25 10:37:16 · 136 阅读 · 0 评论