文章来源地址https://www.toymoban.com/news/detail-630852.html
输入样例:
7 5
1 2
3 2
2 4
4 5
4 6
输出样例:
3
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=220;
int n,m,t;
int d[N][N],vis[N];
int match[N];
bool find(int x){
for(int i=1;i<=n;i++){
if(d[x][i]&&!vis[i]){
vis[i]=1;
if(match[i]==0||find(match[i])){
match[i]=x;
return true;
}
}
}
return false;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
int x,y;
scanf("%d%d",&x,&y);
d[x][y]=1;
}
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
d[i][j]|=d[i][k]&d[k][j];
int res=0;
for(int i=1;i<=n;i++){
memset(vis,0,sizeof vis);
if(find(i)) res++;
}
cout<<n-res;
return 0;
}
文章来源:https://www.toymoban.com/news/detail-630852.html
到了这里,关于AcWing 379. 捉迷藏(最小路径点覆盖&&匈牙利算法)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!