双向边啊……
by DFPMTS @ 2017-04-03 23:53:28
我用匈牙利也要开100000以上。。
by littleming @ 2017-04-04 10:29:20
```cpp
#include<bits/stdc++.h>
using namespace std;
const int N=205;
struct cs{int to,nxt;}a[N*N*2];
int head[N],ll,link[N];
int n,m,x,ans;
bool vi[N];
void init(int x,int y){
a[++ll].to=y;
a[ll].nxt=head[x];
head[x]=ll;
}
bool dfs(int x){
for(int k=head[x];k;k=a[k].nxt)
if(!vi[a[k].to]){
vi[a[k].to]=1;
if(!link[a[k].to]||dfs(link[a[k].to])){
link[a[k].to]=x;return 1;
}
}return 0;
}
int main()
{
scanf("%d",&m);
while(m--){
ll=0;memset(head,0,sizeof head);
ans=0;memset(link,0,sizeof link);
scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
scanf("%d",&x);
if(x)init(i,j);
}
for(int i=1;i<=n;i++){
memset(vi,0,sizeof vi);
if(dfs(i))ans++;
}
if(ans==n)printf("Yes\n");else printf("No\n");
}
}
```
by hzlQAQ @ 2017-07-22 11:50:57
@[TonyHan](/space/show?uid=19242) 匈牙利是单向边啊
by thmyl @ 2017-09-29 08:46:17
@[thmyl](/space/show?uid=21293) 我当时又不知道是用匈牙利实现的。。
by DFPMTS @ 2017-09-29 22:55:26
@[littleming](/space/show?uid=15090) 你的匈牙利实现多组数据没有清零边的编号。。
by DFPMTS @ 2017-09-29 22:56:56