摘要:
二分图最小不相交路径覆盖 #include<bits/stdc++.h> using namespace std; const int MAXN = 5550; const int MAXM = 1000005; const int INF = 1000000050; int Head[MAXN], 阅读全文
摘要:
先黑白染色 再二分图最大独立集 #include<bits/stdc++.h> using namespace std; const int MAXN = 40050; const int MAXM = 1000005; const int INF = 1000000050; int Head[MA 阅读全文
摘要:
修车数据加强版 需要动态加边加点 #include<bits/stdc++.h> using namespace std; const int INF = 0x7f7f7f7f; const int MAXN = 100005, MAXM = 5000005; int Head[MAXN], cur 阅读全文
摘要:
左边n个点 代表顾客 右边n*m个点 每n个为一组 (i,j)表示第i个维修工第k个修理该顾客的车 #include<bits/stdc++.h> using namespace std; const int INF = 0x7f7f7f7f; const int MAXN = 1005, MAXM 阅读全文
摘要:
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN = 1000005; const int MAXM = 1000005; const int mod = 1e9 + 7; int t 阅读全文
摘要:
给你一个二分图 要求你求出对于k=[0~Mindegree] 每个点的度数至少为k所需要的最少边数 并输出方案 如果是单个询问的话 直接跑一个下界网络流即可 但是有多个询问 重建图强行跑不行 反过来考虑,变成至多能删除多少边则建边[s,i,degree[i]-Mindegree] [i,T,degr 阅读全文
摘要:
实现时这样建图:直接将S连向同意的人,T连向不同意的人,若两人是朋友,则在他们之间连一条双向边 阅读全文
摘要:
如果没有组合效益的存在 我们直接每个点两部分的最大值即可 换成网络流模型来看 即把S点看作是A田 把T点看作是B田 每种作物看作一个点 分别连边(S,i,A[i]) (i,T,B[i]) 最后图中所有边权和减去最大流即为答案.这个很好理解,因为最小割=最大流,一种作物只能选择A,B里的一个 所以对于 阅读全文
摘要:
如果只有两个物品的话 是一个裸的二分图匹配问题 现在变成了三个物品之间的匹配 则只要在中间加一层节点表示书 再把这层的每个点拆成两个点中间连一条边限制流量 使其只能用一次 #include<iostream> #include<cstdio> #include<cstdlib> #include<c 阅读全文
摘要:
对于一个二分的答案 假设存在一个点集使得不满足Hall定理 题中给定的信息说明 左边每个点对应的右边点是一个区间 如果当前点集对应的右边区间是若干个不相交的区间组成的话说明我们还可以找到一个更小的点集使得其也不满足Hall定理 假设我们当前找到了一个极小的不满足Hall定理的点集 其对应的右边区间如 阅读全文