最大匹配
FSYo
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程
展开
-
匈牙利算法
概括: 对面没有匹配就直接匹配,对面匹配了就强行拆散 最坏复杂度O(nm) #include<bits/stdc++.h> #define N 2005 using namespace std; int n,m,e,ans,vis[N],match[N]; int first[N],next[N*N],to[N*N],tot; int read(){ int cnt=0,f=1...原创 2018-11-04 17:12:17 · 142 阅读 · 0 评论 -
连续攻击游戏[最大匹配]
传送门 我们将属性向武器建边,匈牙利跑最大匹配就可以了 #include<bits/stdc++.h> #define N 1000005 #define M 10005 using namespace std; int n,ans,vis[N],match[N]; int first[N],next[N*2],to[N*2],tot; int read(){ int cnt=...原创 2018-11-04 17:14:01 · 317 阅读 · 0 评论 -
Gopher II[最大匹配]
传送门 将所有地鼠与可以到的点连边,跑最大匹配 #include<bits/stdc++.h> #define N 105 using namespace std; int n,m,s,v,Map[N][N],ans,vis[N],match[N]; double x[N],y[N],p[N],q[N]; double dis(double x1,double y1,double...原创 2018-11-04 17:15:53 · 263 阅读 · 0 评论 -
棋盘覆盖[最大匹配]
题目描述 给出一张nn(n<=100)的国际象棋棋盘,其中被删除了一些点,问可以使用多少12的多米诺骨牌进行掩盖。 输入格式 第一行为n,m(表示有m个删除的格子) 第二行到m+1行为x,y,分别表示删除格子所在的位置 x为第x行 y为第y列 输出格式 一个数,即最大覆盖格数 #include<bits/stdc++.h> #define N 105 #define M...原创 2018-11-21 23:19:37 · 230 阅读 · 0 评论 -
矩阵游戏[最大匹配]
传送门 如果Map[i][j]=1 就表示第j列可以换到第i列来满足i , 于是add(i,j) 跑最大匹配 , 中途匹配失败就break了 #include<bits/stdc++.h> #define N 205 #define M N*N using namespace std; int first[N],next[M],to[M],tot; int T,n,Map[N]...原创 2018-11-28 22:58:24 · 295 阅读 · 0 评论 -
超级英雄[最大匹配]
传送门 第i轮向妙计建边 , 然后跑最大匹配 发现第i个找不到的时候就可以break 然后输出答案了 #include<bits/stdc++.h> #define N 1050 #define M 100050 using namespace std; int first[N],next[M],to[M],tot; int n,m,vis[N],match[N],cnt,an...原创 2018-11-27 21:28:42 · 232 阅读 · 0 评论