邻接表要多大

P1129 [ZJOI2007] 矩阵游戏

双向边啊……
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


|