随笔分类 - 二分图匹配
摘要:/*codevs 3052 二分图匹配 把矩阵分两批 黑和白 且黑白不相交 这就构成了二分图的两部分 然后求最大匹配*/ #include #include #define maxn 5010 using namespace std; int n,m,k,num,head[maxn],match[maxn],ans; int g[51][51],f[maxn],Color[51][51]; s...
阅读全文
摘要:/* 一看就是最大匹配然后删边.... 开始不会建图...总觉得有好多 分 ... 看了看题解 二分图嘛 按行列建图 某个点能放车 x连y 最后删掉这个匹配和边 看看能不能匹配 */ #include #include #include #define maxn 110 using namespace std; int n,m,k,G[maxn][maxn],match[maxn],mx,...
阅读全文
摘要:/* 二分图匹配 建图稍麻烦点 不过 有STL大法带我上天 说正经的 先假设都有关系 然后把确定的没有关系的删掉 这样跑出来的一定是完美匹配 至于确定的匹配嘛 删掉这一条 不再是完美匹配 然后记下排序输出 */ #include #include #include #include #include #define maxn 25 using namespace std; int n,su...
阅读全文
摘要:/*裸地KM*/ #include #include #include #define maxn 110 #define inf 0x3f3f3f3f using namespace std; int n,m,ans,match[maxn],w[maxn][maxn],d; int fx[maxn],fy[maxn],lx[maxn],ly[maxn]; bool Dfs(int i) { ...
阅读全文
摘要:/* 一开始大意了 以为和bzoj上的祭祀是一样的(毕竟样例都一样) 这里不知相邻的点可以相互到达 间接相连的也可以到达 所以floyed先建立一下关系 再跑最大独立集 下面贴一下95 和 100的代码 (认真读题保平安) */ #include #include #include #define maxn 210 #define maxm 30010 using namespace std;...
阅读全文
摘要:/* 二分图 题目给出的是确定不连通的边 如果我们拿剩下的可能联通也可能不连通的边跑最大匹配 如果不是完美非配 也就是说把所有可能的边都认为是一定的 这样都跑不出来(不能匹配到每个点)那么一定不能确定任何一组 如果是完美匹配 就说明可能有能肯定的组合 接下来我们一条一条的删边 如果删完之后跑出来的不是完美匹配那么这一条边就是肯定的 最后记一下答案 拍一...
阅读全文
摘要:/* 二分图染色版本 两个监狱对应二部图的两部分 在给定的怨气值里二分 对于每一个Ci 进行染色判断是否合法 染色的时候 如果这条边的ci > Ci 这两个人就带分开 即染成不同的颜色 如果染色到某两个点颜色相同且怨气值>Ci 这个Ci就不合法 二分直到最后答案 */ #include #include #include #include #define maxn 100010 us...
阅读全文
摘要:#include #include #include #define maxn 2010 using namespace std; int n,m,num,head[maxn],f[maxn],match[maxn],color[maxn]; struct node { int u,v,pre; }e[maxn*maxn]; void Add(int from,int to) { ...
阅读全文
摘要:#include #include #include #define maxn 2020 using namespace std; int n,m,g[maxn][maxn],ans,f[maxn],match[maxn]; int init() { int x=0;char s;s=getchar(); while(s'9')s=getchar(); while(s>=...
阅读全文

浙公网安备 33010602011771号