摘要:
题意:给出两个不同方案,每个方案使得所有的城堡被连通(形成连通图),同时使边权之和尽量小,问第一个方案与第二个方案的大小关系。解题思路: 因为m个桥能使n个城堡联通,而两个大爷的方案中至少存在一个桥不相同,那么我们判断这是一个求次小生成树的方法。 求次小生成树模板: ... 阅读全文
摘要:
题意:问能否构造一个矩阵,使得矩阵中的每个数字范围是1-20并且满足矩阵每行之和与矩阵每列之和与所给数组相等。 思路:尽管矩阵是20*20 ,但是如果爆搜复杂度依旧爆炸,我们考虑使用网络流解决这个问题,下面重点讲解怎么构图。至于怎么写可以参考紫书,与网上的模板。 建图:先来考虑本题的限制是什么,首先 阅读全文
摘要:
板子: 题意:N个城堡,M个桥,每个桥的权值都不一样,题目要求能使城堡彼此联通的所有桥集合里面权值最小的那种,由此可以判断这是一道求最小生成树的题。 POJ3723 题意:有 N 个男人 M 个女人,给出若干男女之间的 1~9999 之间的亲密度关系,征募某个人的费用是 10000 -(已经征募到的 阅读全文
摘要:
题意: 给定数字n,m,(1≤n,m≤500000) 将n变为n*2的花费为2,将n变为n-3的花费为3,要求过程当中所有数字都在[1,500000]区间内。 求将n变为m的最少花费。 思路: 将每个数字视为图论中的点,数字之间的转换视为图论中的边。有向图! 500000个点,连边(i,i*2)权值 阅读全文
摘要:
求联通快模板 Uva 油田#include#include#includeusing namespace std;const int maxn = 1000 + 5;char g[maxn][maxn];int m, n, id[maxn][maxn];void df... 阅读全文
摘要:
题意: 有n个点,m条边,问能不能找到一条路把所有的边都经过一次。求解思路: 因为是要遍历所有的边,所以这个问题就可以规约到求一个图的欧拉路径上。 但是这道题的数据是比较严格的,我们不能写递归,因此就要用非递归写欧拉回路,参考博客如下: https://blog.cs... 阅读全文
摘要:
题意: 给出一个无向图,问从1到n是否存在一条长度为L的路径。 n,m<=50,1<=路径长度<=10000,L<=10^18 思路: 改变一下思路,我们发现,假设从起点1走到终点N有一条路径的长度为a,假设它再往一条与终点相连的长为b的路径反复走无数次后使得路径长度到达了T,那么一定有(T-a)% 阅读全文
摘要:
一般地,差分约束系统分两类:求最大差和最小差 原因如下: 对于线性规划问题,上述不等式的特点就是式子的左右两边都只有 1 个变量( B 为常数)。这与图上的最短路是类似的。记从起点 s 出发,到各个定点的 v 的最短距离为 d(v),因此对于每条权值为 w 的边 e =(v,u),都有 d(v)+ 阅读全文
摘要:
题意: 给定m*n的棋盘,有若干只咕咕。希望去掉一部分咕咕使得剩下的咕咕在上下左右四个方向越过咕咕槽的情况下都看不到咕咕。 思路: 建立一个二分图的方法有很多,这里采用xy二分。 假设没有咕咕槽的情况下,咕咕的最大放置数其实有点像八皇后问题,当然这里我们用最大匹配的... 阅读全文
摘要:
题意: 给你N个点的一幅图,初始图中有M条边,每次操作可以使得一个点连接的所有点变成一个团,问你最少多少次操作可以使得整个图变成一个团.解法: 因为N很小 所以我们可以二进制压缩来表示一个点与其他点之间的关系。二进制的第i位代表标号位i+1的人。例如标号为1的人认识标... 阅读全文