codevs1222 信与信封的问题

一道二分图的变式

肯定啦先建反图

接着要想清楚,如果第i封信和第j个信封是唯一确定的,那么i到j这条边一定在这个二分图的最大匹配里

枚举删边,如果匹配情况有改变,则ans++

#include
#include
#include
#include
#define For(i,j,k) for(int i=j;i<=k;i++)
using namespace std;
const int N=100+5;
int map[N][N],cd[N];
int n;
int vis[N],w[N],ww[N];
inline int read(){
	char c=getchar();
	while(c<'0'||c>'9')c=getchar();
	int x=c-'0';
    c=getchar();
    while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
	return x;
	}
struct node{
	int l;
	int r;
	}real[N];
int compare(const node w1,const node w2){
	return w1.l


你可能感兴趣的:(二分图)