| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
why wa?#include<cstdio>
#include<algorithm>
const int maxn=301;
struct mnode
{
int v;
mnode *next;
};
mnode mem[maxn];
int mtail;
mnode *graph[maxn];
int n,m;
int matchy[maxn];
bool marked[maxn];
void gadd(int u,int v)
{
mtail++;
mem[mtail].v=v;
mem[mtail].next=graph[u];
graph[u]=&mem[mtail];
}
void init()
{
int i,t,v;
mtail=0;
memset(graph,0,sizeof(graph));
scanf("%d %d\n",&n,&m);
memset(matchy,0,sizeof(matchy));
memset(marked,0,sizeof(marked));
for (i=1;i<=n;i++)
{
scanf("%d",&t);
while (t--)
{
scanf("%d",&v);
gadd(i,v);
}
scanf("\n");
}
}
bool search(int v)
{
mnode *iter;
if (marked[v])
return(false);
marked[v]=true;
for (iter=graph[v];iter;iter=iter->next)
if ((!matchy[iter->v])||(search(matchy[iter->v])))
{
matchy[iter->v]=v;
return(true);
}
return(false);
}
void starmain()
{
int i;
for (i=1;i<=n;i++)
{
memset(marked,0,sizeof(marked));
if (!search(i))
{
printf("NO\n");
return;
}
}
printf("YES\n");
}
int main()
{
int t;
// freopen("c:\\in.txt","r",stdin);
scanf("%d\n",&t);
while (t--)
{
init();
starmain();
}
return(0);
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator